空の行を除く ('/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...*