Python 7.文件处理
Posted lt123456
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 7.文件处理相关的知识,希望对你有一定的参考价值。
1.步骤:
#1. 打开文件,得到文件句柄并赋值给一个变量 #2. 通过句柄对文件进行操作 #3. 关闭文件
#1. 打开文件,得到文件句柄并赋值给一个变量 f = open(‘可不可以‘,encoding="utf8") #默认打开模式就为r #2. 通过句柄对文件进行操作 d = f.read() print(d) #3. 关闭文件 f.close()
2.打开文件的模式
文件句柄 = open(‘文件路径‘, ‘模式‘)
模式可以是以下方式以及他们之间的组合:
1、读模式 r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式
f = open("test", "r",encoding="UTF-8") #只读的方式打开的文件,encoding是转码的意思,告诉解释器,是以UTF-8的格式 i=f.read() # 读取文件,bing 赋值给i print(i) #打印i f.close() #关闭文件夹
2、读写模式 r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
f = open("test", "r+",encoding="UTF-8") #读写的方式打开的文件,encoding是转码的意思,告诉解释器,是以UTF-8的格式 i=f.read() # 读取文件,bing 赋值给i print(i) #打印i f.write("我要学Python ") #写入 # f.flush() f.close() #关闭文件夹
3、写模式 w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件
f = open("test", "w",encoding="UTF-8") #写的方式打开的文件,encoding是转码的意思,告诉解释器,是以UTF-8的格式 f.write("我要学Python ") #写入,文件夹存在覆盖,不存在创建 f.close() #关闭文件夹
4、读写模式 w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件
f = open("test", "w+",encoding="UTF-8") #写的方式打开的文件,encoding是转码的意思,告诉解释器,是以UTF-8的格式 f.write("我要学Python ") #写入,文件夹存在覆盖,不存在创建 print("定位之前的光标位置:%s" % (f.tell())) f.flush() #刷新文件使内存的内容刷新至文件夹 f.seek(0) #因为W+读取文件之后会定位在文件尾部,所以需要重新定位一下光标位置,要不无法读取 print("定位之后的光标位置:%s" % (f.tell())) i = f.read() print(i) f.close() #关闭文件夹n
5、追加 a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入
f = open("test", "a",encoding="UTF-8") #追加方式打开的文件,encoding是转码的意思,告诉解释器,是以UTF-8的格式 f.write("我要学Python ") #写入,文件夹存在追加,不存在创建 print("定位之前的光标位置:%s" % (f.tell())) f.seek(0) #因为a追加文件之后会定位在文件尾部,所以需要重新定位一下光标位置,要不无法读取 print("定位之后的光标位置:%s" % (f.tell())) f.close() #关闭文件夹
6、追加读 a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
f = open("test", "a+",encoding="UTF-8") #追加读方式打开的文件,encoding是转码的意思,告诉解释器,是以UTF-8的格式 f.write("我要学Python ") #写入,文件夹存在创建,不存在创建 print("定位之前的光标位置:%s" % (f.tell())) f.flush() #刷新文件使内存的内容刷新至文件夹 f.seek(0) #因为W+读取文件之后会定位在文件尾部,所以需要重新定位一下光标位置,要不无法读取 print("定位之后的光标位置:%s" % (f.tell())) i = f.read() print(i) f.close() #关闭文件夹
3.文件处理的函数
f = open(‘test‘,‘a+‘,encoding="utf8") print ("文件名为: ", f.name) print(f.closed)#文件如果关闭返回True print(f.encoding)#查看使用open打开文件的编码 f.flush()#刷新 print(f.seek(3))#从开头开始算,将光标移动到第三个字节
#readline()
#从文件读取整行,包括 " " 字符。如果指定了一个非负数的参数,则返回指定大小的字节数,包括 " " 字符。
fo = open("test", "r",encoding="UTF-8") line = fo.readline(3) #指定读取16字节 print("读取指定的字符串为:%s" % (line)) print("光标现在的位置:%s" %(fo.tell())) fo.seek(0,0) #之所以用这个是因为前面已经读了16个字符了所以要把光标调到0 的位置 print("调整后光标的位置:%s" %(fo.tell())) line = fo.readline() #读取第一行 print("读取第一行:%s" % (line))
#read()
# 用于从文件读取指定的字节数,如果为给定或为负则读取所有
fo = open("test1", "r", encoding="UTF-8") line = fo.read() # 不指定字符节读取所有 print(line) fo = open("test1", "r", encoding="UTF-8") line = fo.read(6) # 指定读取16字节 print(line)
#readlines()
#读取所有行(直到结束符 EOF)并返回列表。
fo = open("test", "r",encoding="UTF-8") data = fo.readlines() print("读取所有行:%s" % data) for line in data: line = line.strip(" ") #使用strip去掉换行符/n print("分行读取:%s" % (line))
#truncate()
#用于截断文件,如果指定了可选参数 size,则表示截断文件为 size 个字符。 如果没有指定 size,则重置到当前位置。
fo = open("test", "r+",encoding="UTF-8") line = fo.readline() print ("读取行1: %s" % (line)) fo.truncate() line = fo.readlines() print ("读取行2: %s" % (line)) fo = open("test", "r+",encoding="UTF-8") fo.truncate(3) #截取10个字符,其余的清空 line = fo.read() print ("读取的数据: %s" % (line))
#next()
# 返回文件的下一行
# 打开文件 f = open("test", "r",encoding="UTF-8") for index in range(1): line = next(f) print ("第 %d 行 - %s" % (index, line))
#writelines()
#用于向文件中写入一序列的字符串,这一序列字符串可以是由迭代对象产生的,
# 如一个字符串列表,换行需要制定换行符 。 fo = open("test1", "a+",encoding="UTF-8") seq = ["我要学Python 1 ", "我要学Python 2"] fo.writelines( seq ) fo.flush() fo.seek(0,0) #跳到行首 line = fo.readlines() #读取所有行 print ("读取的数据: %s" % (line))
以上是关于Python 7.文件处理的主要内容,如果未能解决你的问题,请参考以下文章
仅需10道题轻松掌握Python文件处理 | Python技能树征题