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学习总结

你如何在 python 中处理 graphql 查询和片段?

是否有在单个活动中处理多个片段的 Android 设计模式?

python+spark程序代码片段

我在哪里更改此 Python 代码片段以将临时文件保存在 tmp 文件夹中?