我无法在Windows终端上的文件small.txt上读取并执行函数cat(filename)。 python脚本名为hello.py。运行hello.py small.txt并不会显示结果。脚本代码如下:
import sys
def cat(filename):
f=open (filename,'rU')
text = f.read()
print text
def main():
cat (sys.agrv[1])
# This is the standard boilerplate that calls the main() function.
if __name__ == '__main__':
main()
RESTART: C:\Users\WELCOME\google-python-exercises\hello.py
Traceback (most recent call last):
File "C:\Users\WELCOME\google-python-exercises\hello.py", line 34, in <module>
main()
File "C:\Users\WELCOME\google-python-exercises\hello.py", line 30, in main
cat (sys.agrv[1])
AttributeError: 'module' object has no attribute 'agrv'
答案 0 :(得分:0)
有一个拼写错误agrv
。阅读文件后,您没有关闭它。试试这个:
import sys
def cat(filename):
f = open(filename)
text = f.read()
f.close()
print(text)
def main():
cat(sys.argv[1])
if __name__ == '__main__':
main()
我会使用cat()
语句重写with
函数,因为它会关闭文件。
def cat(filename):
with open(filename) as f:
text = f.read()
print(text)
在处理文件对象时,最好使用with关键字。优点是文件在套件完成后正确关闭,即使在某个时刻引发了异常。