如何与另一个脚本在不同目录中执行一个python脚本?

时间:2018-10-23 20:37:30

标签: python import

我试图通过另一个(file1.py)执行一个python脚本(file2.py)。 第一个文件位于test / file1.py中,第二个文件位于test / test1 / file2.py中。

例如,file2.py具有以下代码:

file = open("textfile.txt","w") 
file.write("Hello world")
file.close()

所以我试图从file1.py创建一个.txt文件。 为此,我尝试了几种解决方案,例如:

import Test1.file2

import os 
os.system('Test1/file2.py')

from subprocess import call
call('Test1/file2.py', shell='True')

在file1.py中,但是它们似乎都不起作用。如果要导入函数,第一种解决方案效果很好,但是当我要创建文本文件时,它不起作用。

有人知道我在做什么错以及如何解决吗?

1 个答案:

答案 0 :(得分:0)

要运行另一个文件,您有一些选择:

最好的方法是将文件视为模块,将其导入,然后调用其方法,因此您必须将在方法中创建的.txt封装起来

#on file1.py
def createTxt():
    #your txt creation goes here

并从导入createTxt的{​​{1}}中调用file2.py,这将运行该方法并创建txt文件

file1.py

您还可以使用#on file2.py import file1 createTxt() 来执行它并将其作为脚本运行,或者通过导入execfile('file2.py')进行os.system('python file2.py')来进行系统调用,也可以作为脚本运行

第一个更安全,代码总体上更好,请尽可能避免使用其他两个