2015-10-16 44 views
-1

在我討厭之前,我還沒有找到一個鏈接來回答我的問題。 我是一個Python 3的初學者。編寫一個函數來打開一個文件

我應該寫一個函數來打開我寫的文件(data.txt),裏面寫着'Hi there!'換一個換行符,假設給我一個數爲10.

我在下面寫的代碼給了我第一個測試用例的值爲10,但它未能通過隱藏的測試用例 - 這應該給我一個值81.我的代碼有什麼問題?

def file_size(lines): 
    """docstring""" 
    with open('data.txt', 'r') as file: 
     lines = file.read() 
     return len(lines) 

print(file_size('data.txt')) 
# data.txt contains 'Hi there!' followed by a new line character. 

ans = file_size('alongertextfile.txt') 
print(ans) 
+1

很難說的問題是什麼在這裏,因爲測試用例是隱藏的。瘋狂猜測:他們在81測試用例中包含回車符,根據您的操作系統,讀取期間可能會忽略它。如果使用「rb」模式而不是「r」打開文件,會發生什麼情況? – Kevin

+0

祕密測試用例是ans = file_size('alongertextfile.txt') print(ans) – Saxasianguy

+0

@Kevin使用'rb'給出的值爲11 – Saxasianguy

回答

8

您需要打開其名稱作爲參數傳遞的文件:

def file_size(filename): 
    """docstring""" 
    with open(filename, 'r') as file: 
     data = file.read() 
     return len(data) 
相關問題