在写一本2010年的头版Python书籍时,我遇到了一个练习,我必须将一个列表打印到一个特定的文件中,将另一个列表打印到另一个文件中。所有的代码,所有的工作,除了打印模块说文件的名称没有定义,这是相当奇怪的,因为解决这个问题的办法,它是完全相同的代码我。
import os
man = []
other = []
try:
data = open('ketchup.txt')
for each_line in data:
try:
(role, line_spoken) = each_line.split(":", 1)
line_spoken = line_spoken.strip()
if role == 'Man':
man.append(line_spoken)
elif role == 'Other Man':
other.append(line_spoken)
except ValueError:
pass
data.close()
except IOError:
print("The data file is missing!")
print(man)
print(other)
try:
out = open("man_speech.txt", "w")
out = open("other_speech.txt", "w")
print(man, file=man_speech) #HERE COMES THE ERROR
print(other, file=other_speech)
man_speech.close()
other_speech.close()
except IOError:
print("File error")
以下是来自空闲的错误:
Traceback (most recent call last): File "C:\Users\Monok\Desktop\HeadFirstPython\chapter3\sketch2.py", line 34, in print(man, file=man_speech) NameError: name 'man_speech' is not defined
我是在语法上做错了什么,还是我不知道打印模块是怎么工作的?这本书没有给我任何线索。我也在这里和其他一些论坛上检查了很多问题,但我的代码似乎没有什么问题,我实际上是倾斜的。
在此处打开文件时:
您正在将文件分配给
out
变量,不存在名为man_speech
的此类变量。这就是为什么它会引发一个NameError
,并说man_speech
没有定义。你得把它改成
同样适用于
other_speech
文件名似乎有问题:
您不会将
open
的结果赋给man_speech
,而是赋给out
。因此出现错误消息:代码应该是
相关问题 更多 >
编程相关推荐