Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用脚本调用xargs_Python_Xargs_File Copying - Fatal编程技术网

Python 如何使用脚本调用xargs

Python 如何使用脚本调用xargs,python,xargs,file-copying,Python,Xargs,File Copying,我是python新手,仍处于基础学习阶段。最近,我尝试编写一个脚本,根据输入文本文件中提供的编号生成新文件夹。创建这些文件夹后,我想同时将一个文件复制到所有这些文件夹中。我可以打字 echo equil{1..x} | xargs -n 1 cp *.txt * 在候机楼,它工作得很好。这里x是我工作目录中的文件夹数。但我关心的是使其自动,即从脚本调用它,这样用户就不必每次在终端中键入这一行。这就是我为什么尝试这个的原因 sub2 = subprocess.call(['echo', 'equ

我是python新手,仍处于基础学习阶段。最近,我尝试编写一个脚本,根据输入文本文件中提供的编号生成新文件夹。创建这些文件夹后,我想同时将一个文件复制到所有这些文件夹中。我可以打字

echo equil{1..x} | xargs -n 1 cp *.txt *
在候机楼,它工作得很好。这里x是我工作目录中的文件夹数。但我关心的是使其自动,即从脚本调用它,这样用户就不必每次在终端中键入这一行。这就是我为什么尝试这个的原因

sub2 = subprocess.call(['echo', 'equil{1..x}', '|', 'xargs', '-n', '1', 'cp', '*.txt *'])
谁能给我指点指点一下错误吗。事实上,我没有收到任何错误,而是打印了这个

equil{1..x} | xargs -n 1 cp *.txt *

在执行完脚本的其余部分后在终端中执行。

我认为您不能像这样在管道中使用subprocess.call()。有关如何使用管道的配方,请参见


也就是说,您将在两个进程上使用subprocess.communicate()。

如果要向/从子进程的stdin/stdout发送数据,则必须使用
subprocess.Popen
。您必须为每个可执行文件
Popen
一个子进程,即在您的示例中,一个用于
echo
,另一个用于
xargs

文档中有一个示例:

另一个是:


但是,您可以直接用python将它们写入进程stdin,而不是运行
echo
来生成一些行。

实际上,我只想使用脚本将单个文件同时复制到多个文件夹中。那么,用python做这件事不是更容易吗?一些有用的功能:,,您有没有其他建议将单个文件复制到几个名为folder1、folder2、folder3等的文件夹中?