2013-03-11 52 views
0

我的代码是这样的:file.open不工作,我认为这应该的方式

self.data = open("/myData", "a") 
self.data.close() 

self.data = open ("myData", "r") 


    self.master = Tk()  
    if (self.data.read()is not None): 
     print 2 
     print self.data.readlines() 
     print 1 

我通常会在2和一个间空的打印。

我确实知道有一些写在myData中的东西。 我试图打开myData的其他方法,比如

self.data = open ("/myData", "r") 

这使我拒绝“权限”(是的,我确实有对文件的读,写权,我检查了)

self.data = open ("/game-engineering/myData", "r") 

它给我“文件未找到”。

我在做一些愚蠢的路径错误吗?我确实知道该文件不是空的,如果我手动打开它,我会看到里面有什么。

+2

如果路径前缀为“/”,则表示它是* absolute *路径,这意味着它从文件系统的根目录开始解析。我想你不想那样!所以只需删除前导“/”。 – 2013-03-11 00:09:28

+0

这是我第一次尝试。它也没有工作。 – newnewbie 2013-03-11 00:10:39

+0

然后,也许你目前的工作目录是不正确的。用'os.path.getcwd()'检查。另一种解释是,尽管你对权限所说的话,你实际上是将Python作为一些权限较低的用户来运行。 – 2013-03-11 00:11:33

回答

3

当你调用read时,你“消耗”了文件(光标移动到文件的末尾) - 所以当调用readlines时,它立即命中EOF,并返回一个空列表。

在大多数情况下(带有readlines),你可以直接使用它,因为如果文件是空的,你会得到一个空的列表,所以你永远不会进入迭代。

+0

非常感谢,这有诀窍。 – newnewbie 2013-03-11 00:21:12

相关问题