Python 如何使用脚本调用xargs
我是python新手,仍处于基础学习阶段。最近,我尝试编写一个脚本,根据输入文本文件中提供的编号生成新文件夹。创建这些文件夹后,我想同时将一个文件复制到所有这些文件夹中。我可以打字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
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等的文件夹中?