如何在Python中编辑纯文本文件?

3

我一直在尝试创建一个Python脚本来编辑文件,但是如果文件不存在,就会出现以下错误:

    Traceback (most recent call last):
        File "openorcreatfile.py", line 56, in <module>
        fileHandle = (pathToFile, 'w')
        IOError: [Errno 2] No such file or directory: '/home/me/The_File.txt'

如果文件存在,它可以正常工作。我还尝试过这个:
    fileHandle = (pathToFile, 'w+')

但是它显示了相同的错误。我需要明确检查文件是否存在吗?如果需要,我该如何创建文件?

编辑:对不起,我意识到文件夹不存在。我是个笨蛋。


1
我猜测(希望)你的代码行实际上是fileHandle = open(pathToFile, 'w')。父目录必须存在,但文件不需要存在。使用写句柄打开文件时,如果文件不存在,则应创建该文件。 - g.d.d.c
4
展示代码,不只是错误信息。使用复制和粘贴而不是从记忆中重新输入(你的第二段片段可能是不正确的)。 - user3850
5个回答

5
错误提示是“没有这个文件或目录”。
由于您尝试创建一个文件,所以缺少的必须不是文件。因此,您需要创建目录/home/me/
请参见os.makedirs

这是第一个实际符合所示异常的答案,但我强烈怀疑原问题提出者真正尝试去创建'/home/me/The_File.txt'。原问题提出者仍需展示实际的代码。 - g.d.d.c

4
fo = open("myfile.txt", "wb")

fo.write('blah')

fo.close()

这就可以了,这将完成工作。

你可以添加异常处理,以防目录不存在。 - Ottavio Campana

3

myfile = open('test.txt','w')

myfile.write("这是我使用Python写的第一个文本文件\n")

myfile.close()


结果显示,根据问题更新,缺少一个目录。 - Ren

2
要检查文件是否存在,您可以执行以下操作:
import os.path
os.path.isfile(pathToFile)

只有当它存在时,您才能处理它:

if os.path.isfile(pathToFile):
    fileHandle = (pathToFile, 'w')
else:
    pass #or other thing

在Python中创建文件有几种方法,但如果您想要创建文本文件,请查看numpy.savetxt,我认为这是最简单和最有效的方式之一。


4
这完全是杀鸡焉用牛刀。 open(pathToFile,'w')会创建文件,除非父目录不存在。在进行正确诊断之前,OP需要展示实际代码,而不是记忆中的伪代码。 - g.d.d.c
实际上,这是一个很好的建议,可以帮助操作员排除错误。 - Benjamin

1
with open("filename.txt", "w") as f:
    f.write("test")

3
虽然上下文管理器的使用是正确的,但这并不能解释用户遇到的错误。 - g.d.d.c

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接