python文件夾比較
A. python如何把txt文件進行對比提取唯一數據
我寫了個簡單的實現方式,稍微修改就能用了,你可以看看:
代碼:
a = [1, 2, 3] # 讀取的 a.txt
b = [1, 2, 3, 4] # 讀取的 b.txt
c = []
for t in b:
if t in a:
pass
else:
c.append(t) # 寫入c.txt
print(c)
B. python 有沒有一個模塊可以比較兩個文本文件內容差異的而且可以只輸出差異的部分
difflib是python提供的比較序列(string list)差異的模塊。實現了三個類:
1>SequenceMatcher 任意類型序列的比較 (可以比較字元串)
2>Differ 對字元串進行比較
3>HtmlDiff 將比較結果輸出為html格式.
建議你使用SequenceMatcher比較器,給你個例子吧。
SequenceMatcher實例:
import difflib
from pprint import pprint
a = 'pythonclub.org is wonderful'
b = 'Pythonclub.org also wonderful'
s = difflib.SequenceMatcher(None, a, b)
print "s.get_matching_blocks():"
pprint(s.get_matching_blocks())
print "s.get_opcodes():"
for tag, i1, i2, j1, j2 in s.get_opcodes():
print ("%7s a[%d:%d] (%s) b[%d:%d] (%s)" % (tag, i1, i2, a[i1:i2], j1, j2, b[j1:j2]))
輸出為:
s.get_matching_blocks():
[(1, 1, 14), (16, 17, 1), (17, 19, 10), (27, 29, 0)]
s.get_opcodes():
replace a[0:1] (p) b[0:1] (P)
equal a[1:15] (ythonclub.org ) b[1:15] (ythonclub.org )
replace a[15:16] (i) b[15:17] (al)
equal a[16:17] (s) b[17:18] (s)
insert a[17:17] () b[18:19] (o)
equal a[17:27] ( wonderful) b[19:29] ( wonderful)
SequeceMatcher(None,a,b)創建序列比較對象,將以a作為參考標准進行
Sequecematcher(None,b,a)創建序列比較對象,將以b作為參考標准進行
a,b表示待比較的兩個序列,生成序列比較對象後,調用該對象的get_opcodes()方法,將返回一個元組(tag,i1,i2,j1,j2).tag表示序列分片的比較結果.i1,i2表示序列a的索引,j1,j2表示序列b的索引.
get_opcodes()返回元組(tag,i1,i2,j1,j2)的含義
C. 用python依次比較2個文件夾內的JSON文件的差異
這里假設題目裡面提到的」單獨兩個JSON文件的比較方法「的函數是compare_two_files,它接受兩個文件的文件名作為參數。
from pathlib import Path
def compare_two_folders(from_folder, to_folder):
from_folder = Path(from_folder)
to_folder = Path(to_folder)
for json_file in from_folder.glob('*.json'):
json_file_name = json_file.name
json_file_to_compare = to_folder / f'a{json_file_name}'
compare_tow_files(json_file, json_file_to_compare)
D. python如何將兩個文件價中所有同名excel秋褲對比
使用xlrd和xlwt包,首先安裝這兩個包。定義contrast函數,測試contrast函數,把程序打包成exe文件。導入tkinter包,寫個函數用來選擇路徑,初始化變數,畫出UI界面,點擊對比按鈕後的函數。
接下來就是把這個py程序打包,使用pyinstaller這個包pipinstallpyinstaller。安裝成功之後,按鍵盤win+R打開運行,輸入cmd,回車運行。進入程序所在文件夾。
因為有統計成員到會情況的任務,每次匯總時都很麻煩,需要一個個對應騰訊會議導出名單的成員,然後在總表上進行標記,所以就寫了本程序來減少統計的復雜度。
E. python中怎麼比較文件名字元與文件指定位置內容字元是否一致
代碼邏輯:(1)打開文件;(2)讀取文件內容:(3)找到第2行第3、4個字元;(4)判斷是否與文件名相同。
代碼如圖:
F. 用python去比較兩個目錄是否完全相同,問題是目錄下面的的文件和目錄有很多,可能上萬個。
可以在只遍歷一個文件夾,遍歷的時候寫函數去查看另一個文件夾有沒有對應文件及是否相同,這樣遇到不同之處就停止遍歷,節約時間。
G. python 自動比對目錄,並覆蓋更新.
其實你可以這樣想。思路就對了
你只需要寫入遍歷程序,將Z盤所有文件的最後更新時間記錄下來,存放在庫或者文件中。。
當你的程序發現文件更新時間比你記錄的時間新時,或者文件不存在於你的記錄表中,則直接覆蓋D盤下的文件。。這個容易寫。。你自己研究下。
H. 如何用Python代碼實現自動比較兩個文件中的代
可以用 difflib庫,下面給一個例子,具體需求自己研究
假如在同一個目錄下有a.txt, b.txt 兩個文本文件
a.txt 內容是
aaa
bbb
b.txt內容是
aaa
ccc
1234567import difflib a = open('a.txt', 'U').readlines()b = open('b.txt', 'U').readlines()diff = difflib.ndiff(a, b) sys.stdout.writelines(diff)
結果是:
aaa
- bbb+ ccc
I. Python比較兩個文件是否相同,倒數第二行不太明白
答: 確實是有道理的,在文件當中的第7行,實現的功能就是從第1個文件中取一個字元,而第8行是在第2個文件中取一行字元,那麼一個字元和一行字元比較肯定是不相等的呢,所以我覺得第7行那個for循環改一下,改成每次取一行,然後一行和一行比較當比較,結果不同時記錄下它的行號,得到最後的結果。
希望可以幫助到你!
J. python中怎麼快速比較2個文件中的內容
可以用 difflib庫,下面給一個例子,具體需求自己研究
假如在同一個目錄下有a.txt, b.txt 兩個文本文件
a.txt 內容是
aaa
bbb
b.txt內容是
aaa
ccc
importdifflib
a=open('a.txt','U').readlines()
b=open('b.txt','U').readlines()
diff=difflib.ndiff(a,b)
sys.stdout.writelines(diff)
結果是:
aaa
- bbb+ ccc