Python使用fileinput模块实现文件原地修改与字符串查找
本文介绍利用Python内置fileinput模块实现文件内容的原地修改与写回,通过inplace参数避免繁琐的临时文件操作。同时提供两种在字符串中查找子串起始位置的Python实现代码,涵盖手动遍历与split分割法,适用于文本处理场景。
Python文件原地修改与字符串查找方法
在许多应用程序中,文件处理是常见需求,其标准流程通常包括:打开文件、读取数据、处理数据,最后将结果打印至屏幕或写入新文件。
若希望修改文件内容后直接写回原文件,应如何操作?需要采用何种打开模式,以及具体的读写方式是什么?
经过多种尝试,发现其他方法要么无法实现,要么操作过于繁琐,因此最终放弃了那些方案。
幸运的是,Python内置的fileinput模块可以轻松解决这一问题。具体实现代码如下:
import fileinput
for line in fileinput.input(r"D:\1.txt", inplace=1):
print line.replace('d', 'b'),
该方案足够简洁,示例展示了将文件中的字符'd'替换为'b'的过程。
如需了解fileinput模块的更多详细信息,可参考官方文档:http://docs.python.org/library/fileinput.html
补充知识:在Python中查找字符串内另一个子串的位置及其起始索引。

代码详细解析如下。
def index_of_str(seq, sub_seq):
index=[]
n1=len(seq)
n2=len(sub_seq)
for i in range(n1-n2+1):
#print('seq==%s' % (seq[i:i + n2]))
if seq[i:i+n2]==sub_seq:
#print('seq==%s'%(seq[i:i+n2]))
index.append(i+1)
print(index)
index_of_str('ATGATAGAGGGATACGGGATAG', 'GATA')
def index_of_str(s1, s2):
global dex
dex=0
index=[]
lt=s1.split(s2)
print(lt)
num=len(lt)
for i in range(num-1):
dex+=len(lt[i])
index.append(dex)
dex+=len(s2)
print(index)
#if len(lt)==1:
#return -1
#return len(lt[0])
print(index_of_str('ATGATAGAGGGATACGGGATAG', 'GATA'))
以上关于使用Python修改文件并立即写回原始位置(inplace读写)及字符串查找的内容即为全部分享,旨在提供参考,欢迎支持。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













