2024-06-01 05:08:16 发布
网友
我的本地磁盘中有一个大文件,其中第一行包含一些固定长度的字符串。我需要使用python以编程方式替换固定长度的字符串,而无需读取内存中的整个文件。在
我尝试过在追加模式下打开文件,并搜索到0位置。然后替换9字节的字符串。代码也加在这里,我试过了。在
with open ("largefile.txt", 'a') as f: f.seek(0,0) f.write("123456789")
我认为您只想打开文件进行写入而不截断它,这将是r+。为了使其可复制,我们首先创建一个与此格式匹配的文件:
r+
with open('many_lines.txt', 'w') as fd: print('abcdefghi', file=fd) for i in range(10000): print(f'line {i:09}', file=fd)
然后我们基本上按照你所做的去做,但是使用正确的模式:
或者您可以直接使用write,与:
write
with open('many_lines.txt', 'r+') as fd: fd.write('123456789')
注意:我在r+中打开,这样如果不存在FileNotFoundError(或者文件名拼写错误),而不是盲目地创建一个小文件
FileNotFoundError
open模式是直接从C/POSIX API for the ^{}复制的,因此使用a将触发如下行为:
open
a
Subsequent writes to the file will always end up at the then current end of file, irrespective of any intervening fseek(3) or similar
我认为您只想打开文件进行写入而不截断它,这将是
r+
。为了使其可复制,我们首先创建一个与此格式匹配的文件:然后我们基本上按照你所做的去做,但是使用正确的模式:
^{pr2}$或者您可以直接使用
write
,与:注意:我在
r+
中打开,这样如果不存在FileNotFoundError
(或者文件名拼写错误),而不是盲目地创建一个小文件open
模式是直接从C/POSIX API for the ^{a
将触发如下行为:相关问题 更多 >
编程相关推荐