python 文件处理总结
Posted zoe0920
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 文件处理总结相关的知识,希望对你有一定的参考价值。
例如读取文件名为:poem.txt 并且字符编码为 gbk
内容:
北国风光,千里冰封,万里雪飘。
望长城内外,惟余莽莽;大河上下,顿失滔滔。
须晴日,看红装素裹,分外妖娆。
江山如此多娇,引无数英雄竞折腰。
惜秦皇汉武,略输文采;唐宗宋祖,稍逊风骚。
一代天骄,成吉思汗,只识弯弓射大雕。
俱往矣,数风流人物,还看今朝。
1.读取文件内容
f = open(‘poem.txt‘,‘r‘,encoding = ‘gbk‘)
data = f.read()
f.close()
或者为了代码更佳简洁,不必调用f.close()
方法:
with open(‘poem.txt‘,‘r‘,encoding = ‘gbk‘) as f:
print(f.read())
注意:read()方法会一次性把所有内容读取出来返回一个str,还有其他的读取方式,例如:
read(size):每次最多读取指定字符长度的内容,返回一个str
readlines():一次读取文件所有内容,按行返回一个list
readline():每次只读取一行内容
2.写入文件
f = open(‘poem.txt‘, ‘w‘,encoding=‘gbk‘)
f.write(‘Hello‘)
f.close()
或者
with open(‘poem.txt‘, ‘w‘, encoding=‘gbk‘) as f:
print(f.write(‘hello‘))
3. 如果想要只打印文件中某个字,例如打印“望”:
with open(‘poem.txt‘,‘r‘,encoding=‘gbk‘) as f:
f.seek(32)
print(f.read(1))
输出结果:
望
#seek(): 把操作文件的光标移到指定位置,
但是seek的长度是按字节算的,
字符编码存每个字符所占的字节长度不一样。例如gbk中两个字节为一个字。
4. 如果要想删除某些内容,例如删除此诗的第二行:
import os
file_name = ‘poem.txt‘
new_file_name = ‘new_poem.txt‘
str = ‘山舞银蛇,原驰蜡象,欲与天公试比高。‘
f = open(file_name,‘r‘,encoding=‘gbk‘)
f_new = open(new_file_name,‘w‘,encoding=‘gbk‘)
for i in f:
if str in i:
i = ‘‘
f_new.write(i)
else:
f_new.write(i)
f.close()
f_new.close()
os.replace(new_file_name,file_name)
#新建一个文件,把改好的内容写入新文件,最后用新文件替换老文件
或者
poem = []
with open(‘poem.txt‘,‘r+‘,encoding=‘gbk‘) as f:
for line in f:
poem.append(line)
poem.pop(1)
f.seek(0)
f.truncate()
for i in poem:
a = i
f.write(a)
#把内容放进内存,在列表中修改后,清空原文件再写入内容
truncate([size]):截取文件中指定字节数的内容,指定长度的话,就从文件的开头开始截断指定长度,其余内容删除;
不指定长度的话,就从文件开头开始截断到当前位置,其余内容删除。
5.把字符串"Luffy",将小写字母全部转换成大写字母,将大写字幕转换成小写字幕,然后输出到一个文件"test.txt"中保存。
a = "Luffy"
with open(‘test.txt‘,‘w‘,encoding = ‘utf-8‘) as f:
f.write(a.swapcase())
#s.swapcase(): 方法用于对字符串的大小写字母进行转换
以上是关于python 文件处理总结的主要内容,如果未能解决你的问题,请参考以下文章
在 Python 多处理进程中运行较慢的 OpenCV 代码片段
你如何在 python 中处理 graphql 查询和片段?