文章目录
1.open() 函数用于打开一个文件
创建一个 file 对象,相关的方法才可以调用它进行读写。
open(name[, mode[, buffering]])
参数说明:
name : 一个包含了你要访问的文件名称的字符串值。
mode : mode 决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读®。
buffering : 如果 buffering 的值被设为 0,就不会有寄存。如果 buffering 的值取 1,访问文件时会寄存行。如果将 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。
注意:w、w+会覆盖已经存在的文件
2.fileObject.seek(offset[, whence]) 方法用于移动文件读取指针到指定位置
参数:
offset – 开始的偏移量,也就是代表需要移动偏移的字节数
whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
打开文件的模式有:
r ,只读模式【默认】
w,只写模式【不可读;不存在则创建;存在则清空内容;】
x, 只写模式【不可读;不存在则创建,存在则报错】
a, 追加模式【可读; 不存在则创建;存在则只追加内容;】
“+” 表示可以同时读写某个文件
r+, 读写【可读,可写,不会创建不存在的文件,从顶部开始写 会覆盖之前此位置的内容】
w+,写读【可读,可写,不存在则创建;存在则清空内容;】
x+ ,写读【可读,可写,不存在则创建,存在则报错】
a+, 写读【可读,可写,不存在则创建;存在则只追加内容;】
"b"表示以二进制的方式操作
rb 或 r+b
wb 或 w+b
xb 或 w+b
ab 或 a+b
**r+解释:**运行之前是两行五五开牛逼,运行后按顺序覆盖写入,第二行的牛逼依旧存在,并未覆盖
3.file对象常见函数
4.文件读取时常见的格式错误
原因:
读取文件中有中文
解决办法:
打开文件时以utf-8格式打开
f=open('C:/Desktop/PY/wuwukai.txt',encoding='utf-8')print(f.read(10)) `` each_line 为f中的每一行 ```pythonfor each_linein f:print(each_line)
5.注意:utf-8中,一个汉字占3个字节
原文:你们可能不知道只用20万赢到578万是什么概念 f.seek(0,0)print(f.read(4))#read(4) 读了四个汉字print(f.tell())# 此时的位置为12 即‘不’字的开头 f.seek(3,0)#0123 即们字开头 如输入1或2则会报错print(f.read(4)) ————————————————————下方为输出结果———————————————————— 你们可能12 们可能不
6.接受输入并保存为新文件
import os.pathdeffile_write(file_name): f=open(file_name+'.txt','w')print('请输入内容[单独树立\':w\'保存退出]:')whileTrue: write_some=input()if write_some!=(':w'|':w'):#不区分中英 f.write('%s\n'% write_some)else:break f.close() file_name=input('请输入文件名:')if os.path.isfile(file_name+'.txt'):#判断是否本地是否存在同名文件print('请注意,若该文件夹中存在同名文件,请重新命名')else: file_write(file_name)
7.txt文件比较
deffile_compare(file1,file2): f1=open(file1,encoding='utf-8') f2=open(file2,encoding='utf-8') count=0#统计行数 different=[]#统计不一样的数量for line1in f1: line2= f2.readline() count+=1if line1!= line2: different.append(count) f1.close() f2.close()return different file1=input('请输入第一个文件名:')+'.txt' file2=input('请输入第二个文件名:')+'.txt'#也该核查是否存在该文件while file1==file2:print('该两文件为同一文件,请重新输入第二个文件名:') file2=input('请输入第二个文件名:') different= file_compare(file1,file2)iflen(different)==0:print('两个文件一样')else:print('两个文件共用[%d]处不同:'%len(different))for eachin different:print('第%d行不一样'% each)
热门文章
- 动物医院资质查询系统(动物医院有限公司)
- 动物疫苗的使用方法及注意事项有哪些呢视频教学(动物疫苗知识)
- 1月28日最新机场订阅 | 22.6M/S|2025年Shadowrocket/SSR/Clash/V2ray免费节点地址链接分享
- 全国宠物领养中心在哪里(宠物领养中心领养条件是什么)
- 你的编程能力从什么时候开始突飞猛进? 我的回答:2013年,我开始喜欢编程了。
- 动物医院诊疗许可证办理条件及流程图片高清(动物医院诊疗许可证办理条件及流程图片高清)
- 宠物用疫苗可以带上高铁吗北京地区(宠物疫苗能上地铁吗)
- 让猫挠了出血过了24小时有事吗没***怎么办(让猫挠了出血不***有事吗)
- 1月9日最新机场订阅 | 21.1M/S|2025年SSR/Clash/Shadowrocket/V2ray免费节点地址链接分享
- 2月1日最新机场订阅 | 18.5M/S|2025年V2ray/Shadowrocket/Clash/SSR免费节点地址链接分享