所以,我用一个.py文件测试了os.system(call),在那里我只发出了通知,并且它正常工作。 但另一个文件不起作用。另一个文件包含很多代码,只是从开头的内容中向您展示:
import sys, socket, subprocess, time, os, platform, struct, getpass, datetime, plistlib, re, stat, grp, shutil
import string, json, traceback, pwd, urllib, urllib2, base64, binascii, hashlib, sqlite3, bz2, pickle, ast
import StringIO, zipfile, hmac, tempfile, ssl
from xml.etree import ElementTree as ET
from subprocess import Popen, PIPE
from glob import glob
我该如何运行该文件?
答案 0 :(得分:3)
如果这确实是您脚本的开始,那么您的脚本将无法执行。如果要在POSIX系统(包括Mac OS X)上创建可执行的Python脚本,则需要在文件的最开头添加the usual reasons行。例如:
chmod u+x myscript.py
您还需要确保可执行位已设置(os.system
)。
但如果您不使用subprocess
,可以避免所有这些。您已导入subprocess.run([sys.executable, "myscript.py"])
,因此只需使用它:
os.system
这会运行已经运行调用脚本的相同Python解释器的副本,并告诉它运行您的脚本。
(当然你可以用{{1}}来做,如果你想处理字符串连接并且可能需要引用,如果你想无缘无故地产生一个额外的shell,如果你想确保你无法控制输出......)