以前の記事でPythonのツールを作ったのだが、もともとローカルPC(Windows10)で動かす予定だったが、CIツール上で動かすことになった
CIツールには複数のエージェントマシンが存在しOSがWindowsだったりUbuntuだったりするのだが、とりあえずWindowsマシンで動作させるように設定
ただ、エージェントマシンにインストールされているPythonの外部パッケージやネットワークの問題からどうしても解決できない問題があり泣く泣くUbuntuのエージェントでも動かすことに・・・
※管理者に頼み込んで外部パッケージ入れてもらうこともできるのだが・・・
ただツールがレポートファイルを出力するのでファイルのパスを変数で持たせており、特に意識せずに”\\”をファイルセパレータとして書いてた
path f".\\output\\report.txt" |
ubuntuだとこれでは動きません
その為、ファイルセパレータの部分を修正する
ただ、Windows上でも実行するためどちらの環境下でも動作するようにしたい
軽くggったところos.sepでファイルセパレータを返してくれるので以下のように記載した
import os path = f".{os.sep}output{os.sep}report.txt" |
ただ、Ubuntu環境のPythonが3.5なのでf-stringが使えないため以下のように書き換え
import os path = ".{sep}output{sep}report.txt".format(sep=os.sep) |
とりあえずこれでOSに依存せず実行できるようになった。
が、見栄えがいまいちだ…
帰宅後さらにggったところ良い例が見つかったのでご紹介
import os path = "./output/report.txt".replace('/', os.sep) |
これが一番読みやすい気がする
また、Windows環境であってもファイルセパレータに”/”が使用できるため実は意識しなくてもよかったりする
ただ実行時にエラーが出た気がするんだよな…