Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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 subprocess.run([';diff';,path1,path2],stdout=subprocess.DEVNULL)函数显示两个文件之间的差异,即使存在';没有_Python_Python 3.x - Fatal编程技术网

python subprocess.run([';diff';,path1,path2],stdout=subprocess.DEVNULL)函数显示两个文件之间的差异,即使存在';没有

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

我正在尝试调试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的输出是通过以下方式创建的:

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\nbid\u price,bid\u size,ask\r\n>100100,0,0\r\n')行尾字符似乎有差异。关于如何处理它有什么建议吗?这回答了你的问题吗@我对单元测试本身没有写权限。因此,我无法更改diff函数。在写入path2.csv时,我必须使path2.csv的格式与path1.csv的格式相同。@谢谢您的帮助。我能解决这个问题。我在csv.writer()中添加了lineterminator=“\n”参数,似乎已经解决了这个问题。