Python:为什么我需要重新打开一个文件才能成功完成这两个操作
这应该是基本的,但我找不到一个快速的回答我的问题,对不起,如果这是一个双重的 我正在写一个小代码来学习如何操作文件,以及如何计算txt文件中的行数、字数和字符数。 请您解释一下为什么在下面的代码中,如果我没有使用另一个Python:为什么我需要重新打开一个文件才能成功完成这两个操作,python,Python,这应该是基本的,但我找不到一个快速的回答我的问题,对不起,如果这是一个双重的 我正在写一个小代码来学习如何操作文件,以及如何计算txt文件中的行数、字数和字符数。 请您解释一下为什么在下面的代码中,如果我没有使用另一个with open()重新加载文件,代码无法正确计算长度(f.read)?没有它,它返回0。 欢迎提出改进准则的意见 def wc(nomFichier): nb_car=0 nb_words=0 nb_lig=0 with open(nomFich
with open()
重新加载文件,代码无法正确计算长度(f.read)
?没有它,它返回0。
欢迎提出改进准则的意见
def wc(nomFichier):
nb_car=0
nb_words=0
nb_lig=0
with open(nomFichier) as f:
for line in f:
words = line.split()
nb_words += len(words)
nb_lig +=1
with open(nomFichier) as f: #Why I need to reload the file?
nb_car=len(f.read()) #f.read().stripignore to ignore ligne\n
f.close()
return (nb_car, nb_words, nb_lig)
您不需要重新打开该文件
def单词计数(文件路径):
计数字符=0
字数=0
计数线=0
打开(文件路径)为f时:
对于f中的行:
计数字符+=len(行)
count_words+=len(line.split())
计数_行+=1
返回(计数字符、计数单词、计数行)
请注意,我将变量名更改为我认为更合适的名称。
f.seek(0)
应该足够了。@bereal提供了一些代码,以便在开始读取之前将文件位置恢复到开头。谢谢@bereal。我应该在哪里使用seek?在任何情况下,我都想遵循python第一门课程给出的方法,seek在这里不起作用。您的选项是seek
,重新打开,或者将文件读取到变量/列表中,并读取您需要多少次…@AymaneFihadi作为副本链接的问题有解释。每次需要开始读取文件时都调用它。你可以查一下电话号码。