今回は、Python とパスの操作について助けが必要です。まず、この一連のアプリで使用している構造を示します。
- メインフォルダー:
- フォルダー1。
- サブフォルダー 1。
- サブフォルダー 2。
- フォルダー 2。
- フォルダー1。
スクリプトが入っているフォルダーはフォルダー 2 です。ただし、メイン フォルダー (Folder2 から 1 つ戻る) へのパスが必要です。しかし、私が使用している方法は、あまり信頼できません。現在、私は を使用してos.getcwd()
いますが、Excel マクロを使用してシェルを起動すると、パスが壊れます。時々、コードが中断します (多くの場合、パスを使用するループ内で)。
スクリプトが Excel または少なくとも CMD を実行したと昼食をとる必要があります。これは、毎日コンピュータを操作できる程度のコンピュータの知識を持っている人のためのものだからです。そして、すべてのマシンで動作する必要があります。
PS: スクリプトは問題なく動作しますが、作業中のファイルとは別のフォルダーに配置する必要があります。
要求に応じて更新 1:
私はクラスを作りました、そしてこれはクラスです
class mypath:
def Revpath(self):
CWD = os.getcwd()
Revpaths = CWD[:-14]
return Revpaths
def Saldos(self):
CWD = os.getcwd()
Revpaths = CWD[:-14]
Cuadraje = Revpaths+"Stock\\Saldos"
return Cuadraje
def Banco(self,IDkind):
CWD = os.getcwd()
Revpaths = CWD[:-14]
Stocks = Revpaths+"Stock\\kind\\"+IDkind
return Stocks
mp = mypath()
次に、返された値を に代入するだけVar
です。1 つは CSV ライターで使用されます (これはたまたま最も一般的なミス パスです)。もう 1 つは、Firefox プロファイル用のダウンロード フォルダーを設定します。各スクリプトは同じクラスを使用し、ロジックはすべてのスクリプトで 100% 同じです。しかし、コード自体がごちゃごちゃしていて、機密データが含まれているため、これだけしかお見せできません。
更新 2: 解決済み
os.getcwd()
言語のため (最初の言語はスペイン語です) を置き換えることで これを解決しos.path.realpath(__file__)
ました。現在の作業ディレクトリがスクリプトのあるディレクトリであると想定し、代わりに PyCharm 設定フォルダーを返しました (これについてはまだわかりません。 Excelマクロボタンからシェルを介してスクリプトを起動しています)。また、アプリケーションの安定性のために、上記のクラスのコードを更新しました。