python文件操作笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
python文件操作笔记
文件操作:长期保存数据以便重复使用、修改和共享,必须将数据以文件的形式存储到外部存储介质或云盘中。按文件中数据的组织形式可以把文件分文本文件和二进制文本。
1.文本文件
文本文件存储的是常规字符串,由若干文本行组成,通常每行以换行符"\n"结尾。常规字符串是指记事本或其他文本编辑器能正常显示,编辑并且能够直接阅读和理解的字符串,如英文、汉字、数字字符串。
2.二进制文件
二进制文件把对象内容以字节串(bytes)进行存储,无法用记事本或其他普通文本处理软件直接编辑,通常需要专门的软件才能显示、修改编辑或执行。常见的图形文件、音频文件、可执行文件、资源文件、各种数据库文件等属于二进制文件。
python内置了文件对象,通过open()函数即可以指定的模式打开指定文件或创建文件对象,格式如下:
文件对象名=open (文件名,[打开方式,缓冲区])
文件打开模式文件对象属性
模说明属性
r 读模式 closed 判断文件是否关闭,若文件关闭,则返
回True
w 写模式 mode 返回文件的打开模式
a 追加模式
name 返回文件的名称 b 二进制模式(可与其他模式组合
使用)
+ 读写模式(可与其他模式组合使
用)
文件对象常用方法:
方法
功能说明 read([size])
从文件中读取size 个字节 readline() 从文本文件中读取一行内容作为结果返回
readlines() 从文本文件中的每行文本作为一个字符串存入列表中,返回
该列表
seek(offset[,whence]) 把文件指针移动到新的位置,offset 表示相对于whence 的
位置
tell()
返回文件指针的当前位置 write(s)
把字符串s 的内容写入文件 writelns() 把字符串列表写入文本文件,不添加换行符
1、读取文件、写入文件
with codecs.open(‘filename.txt’,’r’) as f:
f.write(s)
2、随机生成数据格式如,(‘编号’,整数)写入文件、读取该文件并按整数排序,import codecs
import random
withcodecs.open('2016.txt','w') as f:
s=""
for i in range(100):
s+="编号,"+str(random.randint(1,1000))+"\n" #生成指定格式数据
f.write(s) #数据写入文件
withcodecs.open('2016.txt','r') as f:
data=f.readlines() #将文本文件的每行文本作为一个字符串存入列表中,
datamc=[eval(line.strip('\n').split(',')[1])for line in data ] #将整数部分取出来
print(datamc)
print('排序后结果')
datamc.sort(key=lambdax:x) #排序
print(datamc)
3 随机生成数据格式如,(‘编号’,整数)写入文件、读取该文件并按整数排序:
#每次一行一行读取数据
l=[]
with codecs.open('2016.txt','r') as f:
while True:
line=f.readline()
if line=='':
break
#print(line.strip('\n'),end=',')
t=[]
t.append(line.strip('\n').split(',')[0])
t.append(eval(line.strip('\n').split(',')[1]))
l.append(t)
print(l)
print('排序后数据')
l.sort(key=lambda x:x[1])
print(l)
用python习惯做代码优化如下:
data=[]
with open('2016.txt','r') as f: #打开文件
for line in f: #文件对象是可迭代对象
b,i=line.strip('\n').split(',') #对文件对象中两部分内容分别赋值给临时变量data.append([b,eval(i)]) #将内容添加到list中
print(data) #输出原始数据
print('排序后数据:')
data.sort() #排序
print(data) #输出排序后数据