如何制作一个python文件来运行另一个?
例如,我有两个 .py文件。我想要运行一个文件,然后让它运行另一个 .py文件。
答案 0 :(得分:380)
有很多方法。我将按倒置优先顺序列出它们(即,最好的第一个,最差的最后一个):
import file
。这很好,因为它安全,快速,可维护。代码会被重用,因为它应该被完成。大多数Python库使用多个扩展到大量文件的方法运行。强烈推荐。请注意,如果您的文件名为file.py
,则您的import
不会在最后包含.py
扩展名。execfile('file.py')
。不安全,hacky,通常是错误的答案。尽可能避免。os.system('python file.py')
。绝望时使用。答案 1 :(得分:50)
将它放在main.py中:
#!/usr/bin/python
import yoursubfile
将此信息放入yoursubfile.py
#!/usr/bin/python
print("hello")
运行它:
python main.py
打印:
hello
因此main.py
运行yoursubfile.py
有8种方法可以回答这个问题,这里有一个更典型的答案:How to import other Python files?
答案 2 :(得分:14)
import os
os.system('python filename.py')
请注意: 将文件放在主python文件的同一目录中。
答案 3 :(得分:12)
我使用了subprocess.call,它与subprocess.Popen
几乎相同from subprocess import call
call(["python", "your_file.py"])
答案 4 :(得分:3)
您将其中一个文件视为python模块,并将另一个文件导入它(就像导入标准python模块一样)。然后,后者可以引用导入模块中定义的对象(包括类和函数)。该模块还可以运行它需要的任何初始化代码。见http://docs.python.org/tutorial/modules.html
答案 5 :(得分:2)
您可以使用此脚本:
def run(runfile):
with open(runfile,"r") as rnf:
exec(rnf.read())
语法:
run("file.py")
答案 6 :(得分:2)
//for saving -
var pos = this.gameObject.GetComponent<RectTransform> ().localPosition;
data = new Data ();
data.x = pos.x;
data.y = pos.y;
string json = JsonUtility.ToJson (data);
reference.Child ("users").Child ("4444").SetRawJsonValueAsync (json);
//for retrieving -
FirebaseDatabase.DefaultInstance
.GetReference ("users/4444")
.GetValueAsync ().ContinueWith (task => {
if (task.IsFaulted) {
// Handle the error...
} else if (task.IsCompleted) {
DataSnapshot snapshot = task.Result;
if (snapshot == null) {
Debug.Log ("snapshot is null");
} else {
json = snapshot.GetRawJsonValue ().ToString ();
data = JsonUtility.FromJson<Data> (json);
}
答案 7 :(得分:0)
可以从主脚本中将其命名为aa1.py,如下所示,
#!/usr/bin/python
import aa1
aa1
aa1.py可能是以下内容,
print'abc'