我已經問過類似這樣的問題,但我會再試一次,因爲我還有一些問題。Python比較差異 - 第2部分
我有兩個csv文件有3列。
名稱產品數量:
我想了解兩個文件之間的差異。如果兩個文件的名稱和產品順序相同,我可以這樣做。這會給我我正在尋找的金額的差異。
我需要的東西,將採取列出和比較兩者,並顯示差異,如果不是在相同的順序。
我曾嘗試:
import csv
import difflib
file1 = open('file1','rb').read().splitlines()
file2 = open('file1','rb').read().splitlines()
for diff in difflib.ndiff(file1, file2):
print(diff)
但是,如果任何事情出了毛病沒有好處。有沒有一種方法可以將每個「名稱產品數量」分組,並與文件2進行比較,在該文件中我已將每個「名稱產品數量」進行了分組,並且如果文件1和文件2之間存在差異,則表明該差異。
值得一提的是,可以循環直接通過文件 - 不需要做''閱讀()splitlines( )''(如果你需要一個列表,它會更好地簡化爲''.readlines()'')。另外,使用上下文管理器(['with''語句](http://preshing.com/20110920/the-python-with-statement-by-example))打開文件可能是值得的。 –
@Lattyware:'difflib.ndiff'(至少2.7)需要字符串列表,而不是字符串文件或迭代器,所以他確實需要列表。當然,除非他可以使用不同的功能。但是你說得對,'readlines()'仍然比'read()。splitlines()'好。 – abarnert
@abarnert這是真的,我會建議你簡單的''readlines()''然後你說。 –