IOError:文件未打开以读取python
这就是我到目前为止所拥有的,我所尝试的一切都表明文件未打开?有什么基本的方法可以解决这个问题吗IOError:文件未打开以读取python,python,file,io,Python,File,Io,这就是我到目前为止所拥有的,我所尝试的一切都表明文件未打开?有什么基本的方法可以解决这个问题吗 liNames = [] while 1 == 1: liNames += [raw_input("Tell me a name. Type DONE(all caps) if done entering:")] if "DONE" in liNames: break del liNames[-1] print liNames name_file = open("
liNames = []
while 1 == 1:
liNames += [raw_input("Tell me a name. Type DONE(all caps) if done entering:")]
if "DONE" in liNames:
break
del liNames[-1]
print liNames
name_file = open("names.txt","w")
line = name_file.writelines(liNames)
for line in name_file:
print line
name_file.close()
具体来说,在这一行之后,评论建议:
line = name_file.writelines(liNames)
插入以下新行:
name_file.close()
name_file = open("names.txt", "r") # or plain open("names.txt")
有了更多的经验,您可以这样写:
with open("names.txt","w") as name_file:
name_file.writelines(liNames)
with open("names.txt") as name_file:
for line in name_file:
print line
更有经验;-),您将学习如何打开文件进行读写。但这更为棘手,对于Windows上的文本文件来说尤其棘手。具体来说,在这一行之后:
line = name_file.writelines(liNames)
插入以下新行:
name_file.close()
name_file = open("names.txt", "r") # or plain open("names.txt")
有了更多的经验,您可以这样写:
with open("names.txt","w") as name_file:
name_file.writelines(liNames)
with open("names.txt") as name_file:
for line in name_file:
print line
更有经验;-),您将学习如何打开文件进行读写。但这更为棘手,对于Windows上的文本文件尤其棘手。解决您的错误:
您只能在写入模式下打开,要阅读,请在读取模式下打开:
name_file = open("names.txt", "r")
或者只是:
name_file = open("names.txt")
因为python默认以读取模式打开文件
因此,这些步骤是:
name_file = open("names.txt","w")
line = name_file.writelines(liNames)
name_file.close()
name_file = open("names.txt")
for line in name_file:
print line
name_file.close()
要使事情看起来更整洁,请使用with
语句(它将自动关闭文件)
像这样:
with open('names.txt', 'w') as file_name:
line = name_file.writelines(liNames)
with open('names.txt', 'r') as file_name:
for line in name_file:
print line
解决您的错误:
您只能在写入模式下打开,要阅读,请在读取模式下打开:
name_file = open("names.txt", "r")
或者只是:
name_file = open("names.txt")
因为python默认以读取模式打开文件
因此,这些步骤是:
name_file = open("names.txt","w")
line = name_file.writelines(liNames)
name_file.close()
name_file = open("names.txt")
for line in name_file:
print line
name_file.close()
要使事情看起来更整洁,请使用with
语句(它将自动关闭文件)
像这样:
with open('names.txt', 'w') as file_name:
line = name_file.writelines(liNames)
with open('names.txt', 'r') as file_name:
for line in name_file:
print line
正如Tim Peters所说,当您在代码中打开文件时,您打开它进行编写。完成写入后,文件将在此模式下保持打开状态,直到在最后一行中调用“close()” 如前所述,您应该这样做(一种可能的方法): 另一种方法是将
与
语句一起使用:
with open("nmes.txt", "w") as name_file:
name_file.writelines(liNames)
这会在
with
块完成时自动关闭文件。正如Tim Peters所说,当您在代码中打开文件时,您打开它进行写入。完成写入后,文件将在此模式下保持打开状态,直到在最后一行中调用“close()”
如前所述,您应该这样做(一种可能的方法):
另一种方法是将与
语句一起使用:
with open("nmes.txt", "w") as name_file:
name_file.writelines(liNames)
这将在带的
块完成时自动关闭文件。尝试打开文件;-)我想你忘了发代码了……很抱歉,你第一次打开这个文件来写(“w”
)。无法从为写入而打开的文件中读取。写入文件后将其关闭,然后再次打开以进行读取(“r”
,或者忽略文件模式参数-默认为读取)。@zybjtu,除非他们也学会了如何seek()
。初学者最好先关闭文件,然后再打开。请尝试打开文件;-)我想你忘了发代码了……很抱歉,你第一次打开这个文件来写(“w”
)。无法从为写入而打开的文件中读取。写入文件后将其关闭,然后再次打开以进行读取(“r”
,或者忽略文件模式参数-默认为读取)。@zybjtu,除非他们也学会了如何seek()
。初学者最好先关闭文件,然后再打开。