首页 > 解决方案 > 如何使用另一个脚本在不同目录中执行一个 python 脚本?

问题描述

我正在尝试通过另一个(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 但它们似乎都不起作用。如果我想导入一个函数,第一个解决方案效果很好,但是当我想创建一个文本文件时它不起作用。

有谁知道我做错了什么以及如何解决?

标签: pythonimport

解决方案


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

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

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

createTxtfile2.pyimporting调用file1.py,它将运行该方法并创建 txt 文件

#on file2.py
import file1

createTxt()

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

一般来说,第一个更安全,代码更好,尽可能避免使用其他两个


推荐阅读