看到博客https://blog.csdn.net/shichunxue/article/details/80201561对txt文件进行处理时打开了两个文件,原文件进行读,然后新建一个文件进行写。
于是我就在想,如果只打开一个文件,直接在原txt文件进行读写时是否可行呢?打开两个文件效率会不会很低?
现实证明是不可行的,因为即使是对同一文件进行处理,先读后写,仍然需要先打开读取,然后打开再写。
下面我用的这种方法,用到了linecache模块,实际上也是对文件进行先打开读取,保存缓存,然后再打开一个文件对文件进行写操作。其实这两种原理是相同的,但是这种方法正在效率上会比打开两次文件读写操作要快。
#-*- coding:utf-8 -*-
import linecache
#del2.txt
lines = linecache.getlines("del2")
# print linecache.cache['del2'][2]
# print lines
# print len(lines)
for i in range(0, len(lines)):
if i%2 == 0:
# lines[i] = lines[i].strip("\n")
lines[i] = lines[i].strip("\n")
# print lines
print lines
#f.txt
with open("f",'w') as file:
lines = ''.join(lines)
file.write(lines)
file.close()
# for i in range(0, len(lineca