我正在学习python并决定编写此脚本,但是由于任何原因,带有回显的行均不起作用。有人可以向我解释原因吗?
#!/usr/bin/env python3.5
import sys
import subprocess
if len(sys.argv) == 1 :
sys.exit()
file_name = sys.argv[1] + '.py'
res = subprocess.run(['touch', file_name])
res = subprocess.run(['chmod', '744', file_name])
res = subprocess.run(['chown', 'user', file_name])
res = subprocess.run(['echo', '\'#!/usr/bin/env python3.5\'', '>>', file_name])
谢谢。
>>
是shell运算符;您需要将str
传递给run
而不是参数序列,然后传递shell=True
使其在子shell中执行。
就是说,什么都不做。您无需为此使用子进程,因为Python内置插件将完成相同的工作,并且比使用子进程要快得多:with open(file_name, 'w') as f:
os.chmod(f.fileno(), 0o744)
shutil.chown(f.fileno(), 'user')
f.write('#!/usr/bin/env python3.5\n')