我正在尝试编写一个自动为我设置python shell脚本的程序。代码如下:
#!/usr/bin/env python3
import click
import subprocess
@click.command()
@click.argument('name')
def foo(name):
subprocess.call("cd ~/bin", shell=True)
subprocess.call(["touch", name])
subprocess.call(["echo", "'#!/usr/bin/env python3'", ">>", name])
subprocess.call(["chmod", "+x", name])
if __name__ == '__main__':
foo()
当它运行时,我得到的输出是:
'#!/usr/bin/env python3' >> foo
答案 0 :(得分:0)
解决此问题的更好方法是使用内置的Python库创建文件,以便您可以更轻松地捕获异常。我为您做了一个简单的概述,但是您应该添加一些错误检查。
import click
import os
import stat
@click.command()
@click.argument('name')
def foo(name):
file_to_create = os.path.expanduser("~/bin/") + name
with open(file_to_create, 'w') as file:
file.write("#!/usr/bin/env python3\n")
file_stats = os.stat(file_to_create)
os.chmod(file_to_create, file_stats.st_mode | stat.S_IEXEC) # equivalent of 'chmod +x'
if __name__ == '__main__':
foo()