如何从linux命令行输入我的Python脚本?

时间:2013-12-02 21:20:07

标签: python linux command-line argv sys

我正在尝试在python脚本中的chmod等文件上执行命令。如何从命令行获取文件名到脚本?我想像这样执行脚本./addExecute.py blah 哪个blah是某个文件的名称。我的代码就是:

#!/usr/bin/python
import sys
import os
file = sys.argv[1]
os.system("chmod 700 file")

我一直收到错误,它无法访问'file'没有这样的文件或目录。

4 个答案:

答案 0 :(得分:4)

os.system("chmod 700 file")
                     ^^^^--- literal string, looking for a file named "file"

你可能想要

os.system("chmod 700 " + file)
                       ^^^^^^---concatenate your variable named "file"

答案 1 :(得分:1)

可能类似于

os.system("chmod 700 %s" % file)

答案 2 :(得分:1)

os.system("chmod 700 file")

文件不会被其值替换。试试这个:

os.system("chmod 700 " + file)
顺便说一下,您应该检查脚本是否使用参数执行(您可能会遇到错误,例如“列表索引超出范围”)

答案 3 :(得分:0)

正如其他答案所指出的,您需要放置变量 file 的值。 但是,遵循建议的标准,您应该使用格式并将其声明为

os.system("chmod 700 {:s}".format(file))

使用

os.system("chmod 700 %s" % file)

不鼓励,参见还Python string formatting: % vs. .format