Using greater than operator with subprocess.call(在 subprocess.call 中使用大于运算符)
问题描述
我想做的很简单.我想使用 python 的 subprocess
模块调用以下命令.
What I am trying to do is pretty simple. I want to call the following command using python's subprocess
module.
cat /path/to/file_A > file_B
该命令简单地工作并将file_A
的内容复制到当前工作目录中的file_B
.但是,当我尝试在脚本中使用 subprocess
模块调用此命令时,它会出错.以下是我正在做的事情:
The command simply works and copies the contents of file_A
to file_B
in current working directory. However when I try to call this command using the subprocess
module in a script it errors out. Following is what I am doing:
import subprocess
subprocess.call(["cat", "/path/to/file_A", ">", "file_B"])
我收到以下错误:
cat: /path/to/file_A: No such file or directory
cat: >: No such file or directory
cat: file_B: No such file or directory
我做错了什么?如何在子进程模块 call
命令中使用大于运算符?
what am I doing wrong ? How can I use the greater than operator with subprocess modules call
command ?
推荐答案
>
输出重定向是 shell 功能,但是 subprocess.call()
带有 args
列表和 shell=False
(默认)不使用 shell.
>
output redirection is a shell feature, but subprocess.call()
with an args
list and shell=False
(the default) does not use a shell.
您必须在此处使用 shell=True
:
subprocess.call("cat /path/to/file_A > file_B", shell=True)
或者更好的是,使用 subprocess
将命令的输出重定向到文件:
or better still, use subprocess
to redirect the output of a command to a file:
with open('file_B', 'w') as outfile:
subprocess.call(["cat", "/path/to/file_A"], stdout=outfile)
如果您只是复制文件,请使用 shutil.copyfile()
函数 让 Python 复制文件:
If you are simply copying a file, use the shutil.copyfile()
function to have Python copy the file across:
import shutil
shutil.copyfile('/path/to/file_A', 'file_B')
这篇关于在 subprocess.call 中使用大于运算符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在 subprocess.call 中使用大于运算符
基础教程推荐
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- 筛选NumPy数组 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01