2015-10-16 63 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) 
相关问题