2017-03-17 135 views
0

所以我一直在用python 3编写一个项目,而且我需要在.txt文件中存储一些数据。当我运行代码时,没有错误信息,它甚至不创建文件。请帮忙。在Python中,写入文本文件不起作用

下面的代码:

text = 'Sample text.' 
saveFile = open('file.txt','w') 
saveFile.write(text) 
saveFile.close() 
+1

'saveFile.close()'。或者更好的是,使用'with'块 –

+0

谢谢,我试过了,但它仍然无效。 –

+0

将代码更改为'saveFile.close()'为我工作。你能重新检查一下你是做什么的,因为它应该可以工作。您还可以添加一行最后一行来读取并打印该文件以进行调试:'print(open('file.txt')。read())' – tdelaney

回答

0

你正在写的文件到当前的工作目录,但该目录是不是你想要的。您可以通过为这些目录生成绝对路径来相对于您的家庭或桌面目录编写文件。

import os 
home_dir = os.path.expanduser('~') 
desktop_dir = os.path.join(home_dir, 'Desktop') 

现在,您可以将它用于您的文件。注意我使用上下文管理器,因此我不必明确关闭文件:

text = 'Sample text.' 
with open(os.path.join(desktop_dir, 'file.txt'),'w') as savefile: 
    saveFile.write(text) 
+0

工作正常!非常感谢! –

0

请确保调用.close()函数,而不是简单地引用方法上的最后一道防线。请注意,该文件将在您的.py模块所在的目录中创建,因此请确保您在正确的位置查找输出。

+0

好的,所以我找到了创建的文件,但是当我将它移动到某个位置时(例如桌面),并尝试再次写入时,没有任何反应。 –

+0

如果您的.txt文件不再与Python模块位于同一目录中,您必须引用特定的文件路径。 'C:\ Users \ User \ Desktop \ sample.txt'或类似的东西。 –

+0

好的。我试过了,我收到一条错误消息,“目录中找不到sample.txt”... –

0

你一定权力,以更好地写入文件

代码像下面

#!/usr/bin/env python 
# coding:utf-8 
'''黄哥Python''' 

text = 'Sample text.' 

with open('sample.txt', 'w') as f: 
    f.write(text) 
+0

这对这种情况没有帮助。文件正在写入,而不是OP认为它应该在的地方。 – tdelaney

+0

请添加所有的错误信息 –

0

是否该文件存在?使用此代码来创建它。

open('sample.txt', 'a').close() 

有对代码行不会伤害是否已经创建了文件,因为它打开文件,并关闭,不添加任何。但是,如果它不存在,它使用python使用的特定编码(我认为)创建它,所以你不必担心这一点。在这之后,你的代码应工作:

text = 'Sample text.' 
saveFile = open('file.txt','w') 
saveFile.write(text) 
saveFile.close() 
+0

这不会帮助。如果文件不存在,“w”将创建该文件。 – tdelaney

+0

它没有任何好处...文件不是用持久性编码创建的。任何读取或写入它的代码都需要知道编码是什么。 – tdelaney

+0

“w”应该创造它,但并不总是如此。几个月前,我发现使用“a”创建文件可以消除我在代码中遇到的一些错误,并且从此我一直在使用它。 – Saelyth