2013-03-15 154 views
0

代码:蟒蛇:打开文件的情况下

f = open('workfile', 'r') Line #1 
if f != None :    Line #2 
    print f.read()   Line #3 

工作文件是不存在的目录,所以可以理解的蟒蛇创建一个(虽然蟒蛇文档中他们没有提到它)。 OK

,但是当我从相同的代码

f = open('names', 'r') Line #1 

更改文件名“工作文件为”名”这表明IO错误:没有这样的文件或目录。

为什么它没有创建'names'的另一个文件?正如在“工作文件”的情况下所做的那样

+5

不,打开文件进行阅读不会*如果它不存在就创建它。它会抛出异常。如果没有,你的'workfile'已经存在。 – 2013-03-15 10:55:16

+0

在第一行中打开'workfile',而不是'workfile.txt'!确保显示文件扩展名(在Windows的情况下)... – Don 2013-03-15 10:57:47

+0

第2行不是必需的。你只是给'f'分配了一个文件句柄,所以'f'当然不会是None。 – user9876 2013-03-15 11:11:37

回答

2

您正试图使用​​r参数打开文件进行读取。

Python的尝试和创建你需要指定像写命令w文件:

f = open('names', 'w') 

,或者如果您要附加到您使用a命令已创建的文件:

f = open('names', 'a') 

或读取和写入(将创建一个文件):

f = open('names', 'r+') 

如果您有疑问,python documentation也可以很好地阅读。

相关问题