在《Python中的持久性》一书的第四章之后,他们要求我们修改“nester”中名为“print”的模块的函数。在
这是我的密码。在
import sys
def print_lol(the_list, indent=False, level=0, fh=sys.stdout):
for each_item in the_list:
if isinstance(each_item, list):
print_lol(each_item, indent, level+1, fh)
else:
if indent:
for tab_stop in range(level):
print("\t", end='', file=fh)
else:
print(each_item, file=fh)
这是测试代码。在
^{pr2}$当我试图实际调用此代码时,会出现以下语句:
File "tester.py", line 7, in <module>
pl(cat, indent=True, fh='amazing.txt')
File "/home/ehl/Python/nester/nester3.py", line 39, in print_lol
print_lol(each_item, indent, level+1, fh)
File "/home/ehl/Python/nester/nester3.py", line 43, in print_lol
print("\t", end='', file=fh)
AttributeError:“str”对象没有属性“write”
我不明白我怎么可能添加“write”属性,任何帮助都将不胜感激。在
应该是:
您当前正在尝试调用
print(..., file='amazing.txt')
,它试图调用'amazing.txt'.write(...)
,这当然没有意义。在'a'
以追加模式打开文件,您可以使用'w'
截断并以写入模式打开。在相关问题 更多 >
编程相关推荐