【发布时间】:2015-04-11 14:25:25
【问题描述】:
pythonsubprocess.check_output 的一些问题。
output = subprocess.check_output(args)
我的args 在哪里:
args = "C:\\DO\\bin\\Config.exe --ChCfg7 --LFE -b1152000 C:\\DO\\PCM\\1.wav C:\\DO\\PCM\\2.wav C:\\DO\\PCM\\3.wav C:\\DO\\PCM\\4.wav C:\\DO\\PCM\\5.wav C:\\DO\\PCM\6.wav --ModeBCast -oC:\\DO\\OUT\\outfile > C:\\DO\\OUT\\log.txt
这在从标准 Windows 命令行执行时有效,但在通过 Python subprocess.check_output 执行时无效。在 win cmd 的情况下,也会产生输出文件和 log.txt,python 脚本会产生大小为 0 的输出文件,根本没有 log.txt。
【问题讨论】:
-
在处理文件路径时使用原始字符串
r"C:\DO....或使用/。您还需要 shell=True 作为参数字符串。 -
r?在
args之前或ąrgs内的每条路径之前一次? -
要清楚,你可以使用
r"C:\path\file"或"C:\\path\\file",如果你使用r"",它会更容易阅读。 -
感谢@DietrichEpp。
-
shell=True解决了它。
标签: python cmd subprocess