我需要在 ('/dir'/) 中获取 csv 文件的长度,不包括空行。我试过这个:
import os, csv, itertools, glob
#To filer the empty lines
def filterfalse(predicate, iterable):
# filterfalse(lambda x: x%2, range(10)) --> 0 2 4 6 8
if predicate is None:
predicate = bool
for x in iterable:
if not predicate(x):
yield x
#To read each file in '/dir/', compute the length and write the output 'count.csv'
with open('count.csv', 'w') as out:
file_list = glob.glob('/dir/*')
for file_name in file_list:
with open(file_name, 'r') as f:
filt_f1 = filterfalse(lambda line: line.startswith('\n'), f)
count = sum(1 for line in f if (filt_f1))
out.write('{c} {f}\n'.format(c = count, f = file_name))
我得到了我想要的输出,但不幸的是每个文件的长度(在'/dir/'中)包括空行。
要查看空行的来源,我读取file.csv
为file.txt
,它看起来像这样:
*text,favorited,favoriteCount,...
"Retweeted user (@user):...
'empty row'
Do Operators...*