使导入的 python 程序从其在文件系统中的位置运行



我想要一个控制程序,从中初始化其他python程序,但这些程序应该引用它们自己的文件夹。

如果我从控制程序导入它们,它将引用控制程序的文件夹而不是子程序。

c:/python3.5/control.py

c:/my documents/data/program1.py

c:/my documents/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:/python3.5 而不是 c:/my documents/data1

如何让它写入子程序文件夹而不写入整个内容(c:我的文档...我想将子程序放在任何地方并写入该目录中的文件。

奇怪的是,几年前我有一个类似的设置,然后我可以导入并让它自动写入子程序文件夹。

如果要获取文件所在位置的目录,可以:

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")

最新更新