2024-04-26 08:11:32 发布
网友
我正在写一个python脚本来做一些事情,然后在最后我对两个文件进行了区分并将其写入一个文件。这是做了大约100个文件,我得到100个输出,其中大部分是空的。我只想在diff有一些输出时才写输出。我在做这样的事
subprocess.Popen("diff -c -p sample1"+i+".txt sample"+i+".txt > output"+1+".txt",shell=True)
这将创建大量空输出*.txt文件。我只希望在有差异时才输出。是否缺少某些选项。你知道吗
这也许是一个bash问题,而不是Python问题——尽管也可以参见Fred Clausen关于如何将其转化为Python问题的答案;-)
在超级用户的this thread中有一些答案-总之,一些可能性是:
xargs -r
Popen创建一个进程对象-您可以通信()(进程对象方法!)到。添加标准=子进程管道到Popen调用,并删除输出重定向。 或者你可以用子流程检查输出()
在执行外部diff命令之前,我建议使用difflib这样的库。这将允许您决定何时或何时输出差异。Popen生成的子shell将始终创建一个文件,因为您正在使用重定向。你知道吗
这也许是一个bash问题,而不是Python问题——尽管也可以参见Fred Clausen关于如何将其转化为Python问题的答案;-)
在超级用户的this thread中有一些答案-总之,一些可能性是:
xargs -r
接受空输入Popen创建一个进程对象-您可以通信()(进程对象方法!)到。添加标准=子进程管道到Popen调用,并删除输出重定向。 或者你可以用子流程检查输出()
在执行外部diff命令之前,我建议使用difflib这样的库。这将允许您决定何时或何时输出差异。Popen生成的子shell将始终创建一个文件,因为您正在使用重定向。你知道吗
相关问题 更多 >
编程相关推荐