如何在python中使用文件调用多个函数

时间:2015-11-23 04:24:26

标签: python file python-2.7

我有多个必须运行的功能。我单独运行的两个函数都很好,但是当我尝试同时运行它们时,只有第一个函数正确运行。

#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)

3 个答案:

答案 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)寻找开头)并再次打开它以便你再次从头开始阅读文件。