我需要在python中获取大文件(数十万行)的行数.记忆和时间方面最有效的方法是什么?
目前我这样做:
def file_len(fname):
with open(fname) as f:
for i, l in enumerate(f):
pass
return i + 1
Run Code Online (Sandbox Code Playgroud)
有可能做得更好吗?
我正在使用python(Django Framework)来读取CSV文件.如您所见,我只从这个CSV中拉出2行.我一直想做的是在变量中存储CSV的总行数.
如何获得总行数?
file = object.myfilePath
fileObject = csv.reader(file)
for i in range(2):
data.append(fileObject.next())
Run Code Online (Sandbox Code Playgroud)
我试过了:
len(fileObject)
fileObject.length
Run Code Online (Sandbox Code Playgroud) 我正在使用大量CSV文件,每个文件包含大量行。我的目标是逐行获取数据,然后使用Python将其写入数据库。但是,因为有大量数据,所以我想跟踪已写入的数据量。为此,我计算了排队的文件数量,并在文件完成时继续添加一个。
我想对CSV文件执行类似的操作,并显示我所在的行以及总共有多少行(例如:)Currently on row 1 of X。我可以很容易地从第一行开始,然后执行以下操作:currentRow += 1,但是我不确定如何通过耗时的阅读行来获得总计。
另外,由于我的CSV文件都存储在zip归档文件中,因此我目前正在使用ZipFile模块读取它们,如下所示:
#The Zip archive and the csv files share the same name
with zipArchive.open(fileName[:-4] + '.csv', 'r') as csvFile:
lines = (line.decode('ascii') for line in csvFile)
currentRow = 1
for row in csv.reader(lines):
print(row)
currentRow += 1
Run Code Online (Sandbox Code Playgroud)
关于如何快速获取CSV文件总行数的任何想法?