比较python中的两个csv文件并跳过给定的行号
我是python新手 我试图读取csv文件,并检查任何差异,同时跳过两个文件的第二行 我是这样开始的比较python中的两个csv文件并跳过给定的行号,python,python-3.x,Python,Python 3.x,我是python新手 我试图读取csv文件,并检查任何差异,同时跳过两个文件的第二行 我是这样开始的 import sys def csv_diff(file_f,file_g): #file_f = sys.argv[1] #file_g = sys.argv[2] set_f = set() set_g = set() with open(file_f) as f: line = f.readline()
import sys
def csv_diff(file_f,file_g):
#file_f = sys.argv[1]
#file_g = sys.argv[2]
set_f = set()
set_g = set()
with open(file_f) as f:
line = f.readline().strip()
while line:
set_f.add(line)
line = f.readline().strip()
with open(file_g) as g:
line = g.readline().strip()
while line:
set_g.add(line)
line = g.readline().strip()
diff = set_f - set_g
# print set_f
# print set_g
# print diff
if diff:
#print "Data mismatch between the files"
return False
else:
#print " Data Matches "
return True
但是这段代码没有读取第一行
我的csv文件
File Name : man.csv
Start Time : 2017-02-17T09:46:50
Read Count : 1
Write Count : 0
Filter Count : 0
Skip Count : 1
我想跳过这一行:开始时间:2017-02-17T09:46:50
有什么简单更好的方法吗?为什么不添加一些简单的方法,比如:
if not "Start Time" in line:
set_g.add(line)
line = g.readline().strip()
如果您的
csv
有许多条目,并且希望始终跳过开始时间,则可以尝试以下操作。如果您的csv
也只有一个条目,这也会起作用
def csv_diff(文件1、文件2):
打开(文件_1,“r”)为f1,打开(文件_2,“r”)为f2:
对于拉链中的第1行、第2行(f1、f2):
如果第1行开始(“开始时间”):
持续
如果line1.strip()!=行2.strip():
打印(f“两个文件“{file_1}”和“{file_2}”不匹配!”)
返回错误
打印(f“两个文件{file_1}和{file_2}是匹配的!”)
返回真值
对于每个文件,可以使用readlines()读取所有行,弹出索引1并将其转换为一个集合,然后查看集合是否相等
def csv_diff(file_f,file_g):
with open(file_f) as f:
textf = f.readlines()
textf.pop(1)
set_f = set(textf)
with open(file_g) as g:
textg = g.readlines()
textg.pop(1)
set_g = set(textg)
if set_f == set_g:
return True
return False
你能寄一份你的产品的样品吗csv@kenan添加了csv文件请发布您的预期输出。@Mayank Porwal预期输出是我在代码中尝试的正确或错误