【问题标题】:How to run windows command line from python script?如何从 python 脚本运行 windows 命令行?
【发布时间】:2019-12-02 18:48:48
【问题描述】:

我有一个 Python 脚本,它提供了一些文件,但我还需要一个日志文件。通常我在windows cmd中使用这个命令:

py name.py > name.log

此脚本是项目的一部分,我需要从 python 运行它。我试过这个:

subprocess.call(["py","name.py",">","name.log"])

它给了我脚本准备的所有文件,但不给我日志文件。

【问题讨论】:

标签: python windows


【解决方案1】:

使用os.system

os.system("py name.py > name.log")

或者,您可以将 stdout 参数的打开文件句柄传递给subprocess.call

args = ['name.py']
cmd = ['py'] + args
with open('name.log', "w") as outfile:
    subprocess.call(cmd, stdout=outfile)

【讨论】:

  • 请注意,在写入文件或管道时,Windows Python 默认使用系统 ANSI 代码页,这可能会导致编码错误。您可以将标准 I/O 的编码覆盖为 UTF-8,例如environ = os.environ.copy();environ['PYTHONIOENCODING'] = 'utf-8';subprocess.call(cmd, stdout=outfile, env=environ).
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-13
  • 1970-01-01
  • 2013-05-28
  • 2021-02-13
  • 1970-01-01
  • 2011-12-13
  • 2012-04-01
相关资源
最近更新 更多