Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python执行带变量的linux命令_Python_Linux_Shell_Python 2.7 - Fatal编程技术网

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

使用python执行带变量的linux命令,python,linux,shell,python-2.7,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() 这段代码列出了目录中的文件,但它没有执行命令

我正在编写一个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”没有这样的文件**


这个脚本有什么问题

包含空格或其他特殊字符的文件名有问题

您可以尝试:

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

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