① python读取两个文件并且判断是否一致
'''判断两个文件是否相同,如果不同请指出第几行不相同'''def f1vsf2(name1,name2):
f1 = open(name1)
f2 = open(name2)
count = 1
msg=[] for line1 in f1:
line2 = f2.readline() if(line1!=line2):
msg.append("第%d行不一样"%count)
count+=1
f1.close()
f2.close() return msg
isbool = Truewhile isbool:
fname1 = input("请输入要比较的文件1路径及文件名:") if fname1 =='': print("文件名不能请重新输入") break;
fname2 = input("请输入要比较的文件2路径及文件名:") if fname2 =='': print("文件名不能请重新输入") break;
result = f1vsf2(fname1,fname2) if len(result)==0: print("两个文件完全一致") else: print("两个文件共有【%d】行不同"%len(result)) for msg in result: print(msg)
isbool = False
② python怎么两两查找多个文件相同内容
可以用 difflib库,下面给一个例子,具体需求自己研究
假如在同一个目录下有a.txt, b.txt 两个文本文件
a.txt 内容是
aaa
bbb
b.txt内容是
aaa
ccc
import 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
③ 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
④ 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)的含义
⑤ python如何将两个文件价中所有同名excel秋裤对比
使用xlrd和xlwt包,首先安装这两个包。定义contrast函数,测试contrast函数,把程序打包成exe文件。导入tkinter包,写个函数用来选择路径,初始化变量,画出UI界面,点击对比按钮后的函数。
接下来就是把这个py程序打包,使用pyinstaller这个包pipinstallpyinstaller。安装成功之后,按键盘win+R打开运行,输入cmd,回车运行。进入程序所在文件夹。
因为有统计成员到会情况的任务,每次汇总时都很麻烦,需要一个个对应腾讯会议导出名单的成员,然后在总表上进行标记,所以就写了本程序来减少统计的复杂度。
⑥ 用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)
⑦ python内两个CSV文件数据比较。。。求大神解答!!
t=open('gzb.csv').readlines()
d=[[int(x)forxiny.split(',')]foryint[1:]]
t1=open('gzb1.csv').readlines()[1:]
d1=[[int(x)forxiny.split(',')[:-1]]foryint1]
o=[t1[i][-2]ifd1[i][1]-1<=d[i][1]<=d1[i][1]+1andd1[i][2]-1<=d[i][2]<=d1[i][2]+1else''foriinrange(len(t1))]
open('out.csv','w').writelines([t[0]]+[t[i+1].strip()+o[i]+' 'foriinrange(len(t)-1)])
我想问题中应该是闭区间,你给的是开区间,我按闭区间写
⑧ Python比较两个文件是否相同,倒数第二行不太明白
答: 确实是有道理的,在文件当中的第7行,实现的功能就是从第1个文件中取一个字符,而第8行是在第2个文件中取一行字符,那么一个字符和一行字符比较肯定是不相等的呢,所以我觉得第7行那个for循环改一下,改成每次取一行,然后一行和一行比较当比较,结果不同时记录下它的行号,得到最后的结果。
希望可以帮助到你!
⑨ 使用Python实现比较俩个文件的数据,不同的存在另一个文件里
这是我之前在excel中比较两组不同数据的代码,修改一下完全可以满足你的要求。
#-*-coding:utf-8-*-
importxlrd
importxlwt
fromxlutils.import
importos,time
importoperator
path=r"E:xx"
#path=raw_input('InputPath:')
os.chdir(path)
print"CurrentWorkspace:%s"%os.getcwd()
#读取excel工作表中数据为字典
#字典形式为:{代码:地名}
defreadDictStandard():
#name_check=raw_input('CheckExcelName:')
filename=(name_check).decode('cp936')
data=xlrd.open_workbook(filename+'.xls',formatting_info=True)
table=data.sheet_by_index(0)
#table=data.sheet_by_name(u'di')
printtable.name
cellList_k=[]
cellList_v=[]
ncols=table.ncols
forcolinrange(0,ncols):
ifnot(col%2):
collist_k=table.col_values(col)
collist_v=table.col_values(col+1)
forcell_kincollist_k:
cellList_k.append(cell_k)
forcell_vincollist_v:
cellList_v.append(cell_v)
check=dict(zip(cellList_k,cellList_v))
num=0
forkeyincheck:
num+=1
#printstr(key),check[key]
print'%nitsincheckExcel'%num
print'-'*50
returncheck
defreadDictCheck():
#name_check=raw_input('CheckExcelName:')
filename=(name_check).decode('cp936')
data=xlrd.open_workbook(filename+'.xls',formatting_info=True)
table=data.sheet_by_index(0)
#table=data.sheet_by_name(u'sheet1')
printtable.name
cellList_k=[]
cellList_v=[]
ncols=table.ncols
collist_k=table.col_values(0)
collist_v=table.col_values(1)
forcell_kincollist_k:
cellList_k.append(cell_k)
forcell_vincollist_v:
cellList_v.append(cell_v)
check=dict(zip(cellList_k,cellList_v))
num=0
forkeyincheck:
num+=1
#printstr(key),check[key]
print'%nitsincheckExcel'%num
print'-'*50
returncheck
defcheckDict(check,standard):
num=0
forkinsorted(check.keys()):
ifknotinstandard.keys():
num+=1
printk,check[k]
elifcheck[k]!=standard[k]:
printk,check[k],standard[k]
num+=1
print'%dnumbersrecords'%num
defmain():
globalname_check
name_check=raw_input('CheckExcelName:')
check=readDictCheck()
name_check=raw_input('StandardExcelName:')
standard=readDictStandard()
time.sleep(1)
checkDict(check,standard)
if__name__=="__main__":
main()
print'-'*50
⑩ 如何用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