Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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中的两个csv文件并跳过给定的行号_Python_Python 3.x - Fatal编程技术网

比较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()

我是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().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预期输出是我在代码中尝试的正确或错误