【发布时间】:2017-10-28 22:12:32
【问题描述】:
例子:
我的主文件 main.py 包含以下代码:
import os
os.popen("start folder/subfile.py")
然后我有我的另一个文件,subfile.py,代码如下:
file = open("test.txt", "w")
file.close()
我希望我的 subfile.py 在它自己的文件夹中创建 test.txt 文件,但它在 main.py 的文件夹中创建它。
所以我的问题是,如何让 subfile.py 从它自己的文件夹运行,即使它是从 main.py 开始的
main.py 文件夹:C:/users/user/Desktop
subfile.py 文件夹:C:/users/user/Desktop/folder
【问题讨论】:
-
产生一个新进程而不是把你的第二个py文件作为一个模块导入并直接调用它的函数的目的是什么?
-
一般来说工作目录不会是main.py的目录。它是父进程设置为工作目录的任何内容,任何正确编写的程序都不应依赖初始工作目录来查找其任何私有资源,例如查找 subfile.py 脚本。另外,不要使用
os.popen。没有理由通过 shell 运行此命令。使用subprocess.Popen。 -
-
@Lojas 为什么要删除带有 main.py 的文件夹?
-
@Code-Apprentice 因为在我的实际情况下,main.py在文件夹中,subfile.py在文件夹外,这样解释更容易。
标签: python windows python-3.x operating-system