使用python执行带变量的linux命令

时间:2014-11-26 11:14:27

标签: python linux shell python-2.7

我正在编写一个python脚本,它应该在.dll文件中提供字符串,并将这些文件存储在目录中。脚本是

import sys
import os
def main():
     for lst in os.listdir("dir name"):
             print lst
             os.system("strings"+" "+lst)
if __name__ == "__main__":
     main()

此代码列出了目录的文件,但它没有执行命令,给出了错误

**字符串:' filename'没有这样的文件**

这个脚本有什么问题?

1 个答案:

答案 0 :(得分:0)

您遇到包含空格或其他特殊字符的文件名时出现问题。

您可以尝试:

def quote(s):
    return "'" + s.replace("'", "'\\''") + "'"

def main():
     for lst in os.listdir("."):
          print lst
          os.system("strings " + quote(lst))
使用Python 3.3(或更高版本)

PS,使用shlex.quote代替