python之文件修改两种方式
Python修改文件两种方式: 一是文本编辑方式,如notepate ;二是:文件写入
方式一
方式一缺点:大文件会浪费内存,不浪费硬盘空间
# cat a.txt 搜素18替换20
wei 22 man
wang 18 female
zhang 18 female
# cat r7.py
#!/bin/python3
# -*- coding: utf-8 -*-
with open('a.txt',mode='rt',encoding='utf-8') as f:
l=f.read() #文件较大,占用内存较大
l1=l.replace('18','20')
print(l1)
with open('a.txt',mode='wt',encoding='utf-8') as f1:
f1.write(l1)
# python3 r7.py
wei 22 man
wang 20 female
zhang 20 female
# cat a.txt
wei 22 man
wang 20 female
zhang 20 female
方式二
方式二缺点是:浪费硬盘空间,不浪费内存空间
# cat a.txt
wei 22 man
wang 20 female
zhang 20 female
# cat r8.py
#!/bin/python3
# -*- coding: utf-8 -*-
import os
with open('a.txt',mode='rt',encoding='utf-8') as f,\
open('.a.txt.swap',mode='wt',encoding='utf-8') as f1:
for i in f:
f1.write(i.replace('20','18'))
os.remove('a.txt')
os.rename('.a.txt.swap','a.txt')
# cat a.txt
wei 22 man
wang 18 female
zhang 18 female
Shell方式
shell 实现方式有很多:sed ,tr + > ,cat + > 等等
# cat a.txt
wei 22 man
wang 18 female
zhang 18 female
#一步实现文件修改替换
# sed -i.bak 's/18/20/' a.txt
# cat a.txt
wei 22 man
wang 20 female
zhang 20 female