2017-07-22 1 views
0

他のPythonプログラムを初期化する制御プログラムが必要ですが、これらのプログラムはそれぞれのフォルダを参照する必要があります。インポートされたpythonプログラムをファイルシステム内のその位置から実行させる

制御プログラムからインポートした場合は、制御プログラムのフォルダであり、サブプログラムではありません。

C:/python3.5/control.py

C:/マイドキュメント/データ/ program1.py

C:/マイドキュメント/ DATAB/program2.py

#control program 
input('good day general, what planet would you like to destroy today?') 
if 1: 
    import '...program1.py' 
if 2: 
    import program2.py 

_

#program1.py 
file = open('textfile.txt','a') 
file.write(xxx) 

これは、Cにテキストファイルを作成します:cの代わりに/python3.5:/マイドキュメント/ DATA1を

サブプログラムフォルダに書き込みを行うにはどうすればいいですか(c:私のドキュメント...)?サブプログラムをどこに置いても、そのディレクトリ内のファイルに書き込むことができるようにしたいと考えています。

奇妙なことに、私は似たような設定を2,3年前に持ち、インポートしてサブプログラムフォルダに自動的に書き込むことができました。

+0

'__file__'が、それは'はos.pathに使用されているファイル/モジュールの実際の(フル)パスです。 abspath(__ file __) 'はそのモジュールへのフルパスを与えます。 – Evert

答えて

0

ファイルをすることができますここでのディレクトリを取得したい場合:。

import os 
# If the directory is of a python module eg program2.py 
dirname = os.path.dirname(os.path.abspath(__file__)) 
# If you know the file path already 
dirname2 = os.path.dirname("C:\\My Documents\\data1") 
関連する問題