python文件操作笔记

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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) #输出排序后数据

相关文档
最新文档