读取文件而不截断,如果文件不存在,则创建文件

我想从一个文件中读取数据而不截断它.我知道我可以使用’r’来读取。

但我也想在FileNotFoundError出现时创建文件。

但使用’w’、’w+’、’a+’来创建文件是可行的,但在以后的运行中,它也会截断文件中的任何现有数据。

基本上是在找一个替代品。

try:
    with open('filename', 'r') as file:
        #if no error is raised, file already exits and
        #can be read from: do stuff on file.
except FileNotFoundError:    
    with open('filename', 'x') as file:
        pass
        #no further actions are required here as the file 
        #is just being created

答案是:

打开文件进行随机写入而不截断?

说明我应该用’rb+’模式打开文件,然而’rb+’会引发FileNotFoundError,如果文件不存在,就不会创建文件。

以二进制模式打开文件也不适合读取文本文件。

解决方案:

你可以试试这样的方法。

>>> try:
...   t = open('filename', 'r+')
... except FileNotFoundError:
...   t = open('filename', 'x')
...
>>> with t as file:
...   file.write("Testing:\n")
...
9

赋值 open() 的名称,然后将该名称用在 with 语句也可以

给TA打赏
共{{data.count}}人
人已打赏
未分类

从JSON数据渲染DataTables,如何在表上预选单选按钮?

2022-9-8 11:44:39

未分类

GWT DataGrid getRowElement在手动设置页面后抛出IndexOutOfBoundsException异常

2022-9-8 11:44:41

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索