使用os.system(program file_argument))
通过命令行启动程序时,如果参数是文件(可能有空格),将参数发送到其他程序的最佳方法是什么?
我看过这些选项:
pipes.quote(file_name)
(或{3}} for Python 3)生成如下字符串:shlex.quote(file_name)
'/dir/file with white space'
生成如下字符串:re.escape(file_name)
使用这些可能会影响被调用程序的区别吗? (还有其他选择吗?)还有什么我需要考虑的吗?
答案 0 :(得分:2)
>>> import subprocess
>>> subprocess.call(['cat', 'file with space.txt'])
使用os.system
虽然很容易上手,但在尝试执行更复杂的任务时却会崩溃。
我希望我早些时候放弃os.system
并且熟悉subprocess
。值得花时间。