我有多个必须运行的功能。我单独运行的两个函数都很好,但是当我尝试同时运行它们时,只有第一个函数正确运行。
#Read file Emma.txt
fin = open('Emma.txt', 'r')
'''
Write a function wordNumbers which takes the file name and return
number of words in the file
'''
def wordNumbers(fin):
#count the number of words.
num_words = 0 #staring point for line
for line in fin:
words = line.split() #create a list of line
num_words += len(words) #add each line legnth together
print num_words #print total number of words
def lineNumbers(fin):
#count the number of lines with a counter and while loop
cnt = 0
for line in fin:
if cnt < line:
cnt += 1
print cnt
wordNumbers(fin)
lineNumbers(fin)
答案 0 :(得分:2)
您必须移至文件的开头
wordNumbers(fin)
fin.seek(0) # move to the beginning
lineNumbers(fin)
或重新打开文件
fin = open('Emma.txt', 'r')
wordNumbers(fin)
fin.close()
fin = open('Emma.txt', 'r')
lineNumbers(fin)
fin.close()
答案 1 :(得分:1)
第一次通话后,您已经用尽了输入。为了做你想做的事,你需要在第二次通话之前回到起点。只需在两者之间添加一个搜索呼叫,如下所示:
wordNumbers(fin)
fin.seek(0)
lineNumbers(fin)
答案 2 :(得分:1)
问题是当你打开一个文件并开始从中读取文件时,你的文件位置在关闭之前不会被重置。 fin = open('Emma.txt', 'r')
打开文件然后你使用两个函数从文件中读取,而你应该在第一个函数调用后关闭它(或者使用fin.seek(0)
寻找开头)并再次打开它以便你再次从头开始阅读文件。