Мне нужно получить длину csv-файлов в ('/ 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))
я получаю выход я хотел бы, но, к сожалению, длина каждого файла (в «/ реж /») включает в себя пустые строки.
Чтобы увидеть, где пустые строки идут от Я прочитал file.csv
, как file.txt
и это выглядит следующим образом:
*text,favorited,favoriteCount,...
"Retweeted user (@user):...
'empty row'
Do Operators...*
Спасибо, он работает частично (например, я могу найти несколько пустых строк) – user2278505