如何使用subprocess.run在另一个文件中回显(bash)

问题描述 投票:0回答:1

我正在学习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])

谢谢。

python-3.x linux bash subprocess
1个回答
0
投票

>>是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')

© www.soinside.com 2019 - 2024. All rights reserved.