2015-11-25 214 views
1

我需要編寫一個程序,用於打開並讀取文件幷包含單獨的用戶定義函數,用於計算文件中的行數和單詞數量,例如linecount(),wordcount()等。我草擬了下面的代碼,但是我一直得到一個名稱錯誤,說「全局名稱f'未定義」。 f是應該由openfile()函數返回的文件句柄。有任何建議嗎?在另一個用戶定義的函數中調用用戶定義的函數時發生名稱錯誤

#open and read file 
def openfile(): 
    import string 
    name = raw_input ("enter file name: ") 
    f = open (name) 

# Calculates the number of paragraphs within the file 
def linecount(): 
    openfile() 
    lines = 0 
    for line in f: 
     lines = lines + 1 
    return lines 

#call function that counts lines 
linecount() 

回答

2

因爲f是OPENFILE局部變量

def openfile(): 
    import string 
    name = raw_input ("enter file name: ") 
    return open (name) 

# Calculates the number of paragraphs within the file 
def linecount(): 
    f = openfile() 
    lines = 0 
    for line in f: 
     lines = lines + 1 
    return lines 

,甚至更短的

def file_line_count(): 
    file_name = raw_input("enter file name: ") 
    with open(file_name, 'r') as f: 
     return sum(1 for line in f) 
+0

@ kAlmAcetA:你的迴應和解決方案非常感謝。訣竅! – Sren