在shell中使用反斜杠或引号转义?

时间:2016-10-03 22:00:49

标签: python shell

使用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)

使用这些可能会影响被调用程序的区别吗? (还有其他选择吗?)还有什么我需要考虑的吗?

1 个答案:

答案 0 :(得分:2)

>>> import subprocess
>>> subprocess.call(['cat', 'file with space.txt'])

使用os.system虽然很容易上手,但在尝试执行更复杂的任务时却会崩溃。

我希望我早些时候放弃os.system并且熟悉subprocess。值得花时间。