上一篇我总结了python对于文件操作的一些常用方法,这一篇主要记录对文件操作的一些常用方法
1.将文件中的内容进行替换
import os
with open('python1.txt',encoding='utf-8') as f1,\
open('python1_bak.txt',encoding='utf-8',mode='w') as f2:
for line in f1:
new_line=line.replace('abc','哈喽')
f2.write(new_line)
os.remove('python1.txt')
os.rename('python1_bak.txt','python1.txt')
2.Python读取文件忽略文件中空行
#isspace()详解
mystr = 'helloworld'
print(mystr.isspace())
#输出结果
False
mystr = 'hello world'
print(mystr.isspace())
#输出结果
False
mystr = ''
print(mystr.isspace())
#输出结果
False
mystr = ' '
print(mystr.isspace())
#输出结果
True
mystr = ' '
print(mystr.isspace())
#输出结果
True
with open('python1.txt', "r", encoding="UTF-8") as r:
for line in r:
if line.isspace(): #如果是空行就忽略
pass
else:
print(line) #如果不是空行就打印出来
3.如何在Python中一次读取N行文件
with open('python1.txt', "r", encoding="UTF-8") as r:
lines=r.readlines()
print(lines)
for line in lines[:5]:
print(line.strip())
4.读写csv文件。
(1)csv文件的写入
import csv
with open('test.csv1','w') as f1:
writer = csv.writer(f1)
writer.writerow(['name', 'age', 'score'])
(2)csv文件的读取
import csv
with open('test.csv','r') as f1:
reader=csv.reader(f1)
for row in reader:
print(row)
5.将数据写入内存
(1)StringIO:将字符串数据写入到内存里面
from io import StringIO
# 创建一个StringIO对象
f = StringIO()
# 可以像操作文件一下,将字符串写入到内存中
f.write('hello\r\n')
f.write('good')
# 使用文件的 readline和readlines方法,无法读取到数据
# print(f.readline())
# print(f.readlines())
# 需要调用getvalue()方法才能获取到写入到内存中的数据
print(f.getvalue())
f.close()
(2)BytesIO**:**二进制数据写入到内存里
from io import BytesIO
f = BytesIO()
f.write('你好\r\n'.encode('utf-8'))
f.write('中国'.encode('utf-8'))
print(f.getvalue())
f.close()