python subprocess.run([';diff';,path1,path2],stdout=subprocess.DEVNULL)函数显示两个文件之间的差异,即使存在';没有
我正在尝试调试python代码 目前,我在两个不同的路径上有两个输出文件:path1和path2 路径2具有以下输出:python subprocess.run([';diff';,path1,path2],stdout=subprocess.DEVNULL)函数显示两个文件之间的差异,即使存在';没有,python,python-3.x,Python,Python 3.x,我正在尝试调试python代码 目前,我在两个不同的路径上有两个输出文件:path1和path2 路径2具有以下输出: price1,size1,price2,size2 100,100,0,0 price1,size1,price2,size2 100,100,0,0 路径1具有以下输出: price1,size1,price2,size2 100,100,0,0 price1,size1,price2,size2 100,100,0,0 path2的输出是通过以下方式创建的: wit
price1,size1,price2,size2
100,100,0,0
price1,size1,price2,size2
100,100,0,0
路径1具有以下输出:price1,size1,price2,size2
100,100,0,0
price1,size1,price2,size2
100,100,0,0
path2的输出是通过以下方式创建的:
with open(r'path2.csv', 'w+', newline='') as csvfile:
csvwriter = csv.writer(csvfile)
fields = ['price1', 'size1', 'price2', 'size2']
csvwriter.writerow(fields)
row = [100, 100, 0, 0]
csvwriter.writerow(row)
Path1.csv已经存在,我有以下单元测试功能来比较Path1.csv内容和path2.csv:
cmd = subprocess.run(["diff", path1.csv, path2.csv], stdout=subprocess.DEVNULL)
self.assertEqual(cmd.returncode, 0)
在这里,我得到一个错误:
AssertionError: 1 != 0
subprocess命令用于测试两个文件之间的差异。即使两个文件之间没有任何差异,它也会显示差异。我很想知道为什么会这样?我已经在这上面呆了一段时间了
任何有关这方面的帮助都将不胜感激
谢谢
编辑:
下面的代码显示了这些文件之间的差异,difflib python库也显示了这些文件之间的差异。但在使用subprocess.run()时,我仍然遇到了上面提到的断言错误
当您改为设置
stdout=subprocess.PIPE
时,输出是什么?@GreenCoveGuy感谢您的回复!输出是CompletedProcess(args=['diff','path1.csv',path2.csv'],returncode=1,stdout=b'1,2c1,2\n