Python 3.6.2 中 CSV 的差距 Analysis/Report

Gap Analysis/Report for CSV in Python 3.6.2

Start         End
MM0001        MM0009
MM0010        MM0020
MM0030        MM0039
MM0059        MM0071

下午好,我想在 3.6.2 中的 Python 中创建代码,这将使我能够在本质上查找连续数字行中的间隙,例如这个。然后它会以类似于以下的格式输出到屏幕以查找缺失的数字:

MM0021    MM0029
MM0040    MM0051
MM0052    MM0058

我已经根据我在这里找到的答案为这个程序创建了一些代码,但我不认为它是完整的,而且我相信它是在 Python 2.7 中完成的。但是,我将其用作我尝试做的事情的基础。

import csv
with open('thedata.csv') as csvfile:
    reader = csv.reader (csvfile)
    for line, row in enumerate(reader, 1):
    if not row:
       print 'Start of line', line, 'Contents', row

任何帮助将不胜感激。

import csv

def out(*args): 
    print('{},{}'.format(*(str(i).rjust(4, "0") for i in args)))

prev = 0
data = csv.reader(open('thedata.csv'))

print(*next(data), sep=', ') #  header

for line in data:
    start, end = (int(s.strip()[2:]) for s in line)

    if start != prev+1:
        out(prev+1, start-1)

    prev = end
    out(start, end)

抱歉,这真的很难看,但应该有用吗?

输出逗号分隔的文本

如果某些东西不起作用,或者您希望将其保存到文件中,请发表评论