版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python程序设计第6章Python文件操作学习目标了解文本/二进制文件识记文件打开模式掌握文件和目录基本操作知识目标能够操作文本文件和CSV文件能够完成基本目录操作能力目标数据完整性的重视良好组织结构对提高效率和减少错误的影响情感态度与价值观文件概述01020403文本文件操作CSV文件操作目录操作目
录文件概述01020403文本文件操作CSV文件操作目录操作目
录文件分类文件操作函数文件:计算机系统中用于存储信息的一种机制,允许将数据永久保存在磁盘或其他外存储器上文本文件二进制文件6.1文件概述120文本文件:保存字符编码的文件ASCIIUNICODEUTF-8GBK*.txt、*.html/*.htm、*.json、*.log、*.ini、源代码文件(*.py、*.cpp、*.java)6.1.1文件分类120二进制文件:保存数据在内存中的字节序列序列化:将内存中的数据对象以字节序列写入文件的过程反序列化:从文件中读取字节序列再转换成内存数据对象的过程压缩文件(*.zip、*.7z)可执行文件(*.exe、*.dll、*.so)图像文件(*.bmp、*.png、*.jpg)音视频文件(*.mp3、*.mp4、*.avi)专有文件(*.dwg、*.psd、*.trec)6.1.1文件分类121内置函数处理文本/二进制文件open()read()、write()、……close()标准库:csv、configparser、zipfile、pickle、sqlite3第三方库:openpyxl、python-docx、OpenCV、librosa、Pillow6.1.2文件操作函数121文件概述01020403文本文件操作CSV文件操作目录操作目
录文本文件操作020403CSV文件操作目录操作目
录文件概述01打开文本文件读/写文本文件关闭文本文件Python使用“文件对象”与文本文件交互open()打开文件并获取一个文件对象调用文件对象的方法读写内容close()关闭文件6.2文本文件操作121open():打开文本文件并返回一个文件对象,以便进行后续的操作file:要打开的文件路径字符串,可以是绝对路径,也可以是相对路径(相对于当前正在运行的*.py文件)mode:可选,指定文件打开模式的字符串6.2.1打开文件121变量=open(file[,optional_params])f1=open('demo.txt')f2=open('E:/points.dat','rb')6.2.1打开文件122字符串说明读写模式'r'仅读取(默认),从文件头开始读取,如果文件不存在则报错'w'仅写入,如果文件不存在则创建新的空文件,如果存在则清空文件内容'x'排它性创建,如果文件已存在则报错'a'追加模式,如果文件不存在则创建新的空文件,如果存在则在末尾追加内容'+'读写模式,可同时读取和写入,与r、w、x、a模式组合使用文件模式't'文本模式(默认),以文本格式打开文件'b'二进制模式,以二进制格式打开文件readlines([hint])读取文件的每一行,返回一个包含读取行的列表hint:可选,控制读取的行数,不指定则读取全部行6.2.2读取文件122f=open('names.txt')lines=f.readlines()#lines是一个列表forlinlines:#l是一个字符串print(l.strip('\n'))示例6-2readline([size])读取文件下一行中的size个字符并返回,未指定size默认读取整行适合文件较大的情况,循环调用处理多行数据6.2.2读取文件122f=open('names.txt')line=f.readline()#line是一个字符串,包含一行的内容whileline!='':print(line)line=f.readline()示例6-3全文按行处理时,可直接遍历文件对象,效果和循环调用readline()一样6.2.2读取文件123f=open('names.txt')forlinf:#l是一个字符串,包含一行的内容print(l)示例6-4read([size])从文件中读取size个字符,以一个字符串的形式返回未指定size默认读取所有内容6.2.2读取文件123f=open('names.txt','r')contents=f.read()#contents是一个字符串print(contents)示例6-4writelines(string_list)接收一个所有元素均为字符串的列表对象作为参数,依次将每个字符串写入文件该方法不会自动在每个字符串后添加换行符6.2.3写入文件123f=open('writelines_demo.txt','w')names=['Danie','Kitty','Branda']f.writelines(names)示例6-7close():关闭文件确保所有的数据都被正确地写入到磁盘释放系统资源6.2.4关闭文件124f=open('writelines_demo.txt','w')names=['Danie','Kitty','Branda']f.writelines(names)f.close()示例6-8with子句:确保文件在代码块执行完毕后自动关闭6.2.4关闭文件124withopen('writelines_demo.txt','w')asf:
names=['Danie','Kitty','Branda']
f.writelines(names)示例6-9文件概述01020403文本文件操作CSV文件操作目录操作目
录CSV文件操作0304目录操作目
录文件概述0102文本文件操作csv模块读/写CSV文件CSV文件:CommaSeparatedValues,纯文本文件,用于存储表格数据可以包含任意数量的记录一般情况下一行一条记录,不同字段用逗号分隔可与excel文件互相转换,也可在Excel软件中编辑6.3CSV文件操作131内置csv模块,可直接导入读写CSV文件之前需要通过open()获取文件对象6.3.1导入模块131importcsvcsv.reader():创建一个csv阅读器对象,该对象是可迭代对象,通过遍历该对象处理文件的每一行6.3.2读取文件131importcsvwithopen('csv_read_demo.csv')asf:reader=csv.reader(f)next(reader)#跳过标题行forrowinreader:sex='女'ifrow[2]=='F'else'男'print(f'{row[0]},{sex},学号是{row[1]}')示例6-14csv.writer():创建一个csv写入器对象,通过该对象的writerow()/writerows()写入内容6.3.3写入文件132importcsvtitle=['姓名','职业','年龄']rows=[['张三','飞行员',32],['李四','工程师',28],['钱五','插画师',26]]withopen('write_csv_demo.csv','w',newline='')asf:writer=csv.writer(f)writer.writerow(title)writer.writerows(rows)示例6-15文件概述01020403文本文件操作CSV文件操作目录操作目
录目录操作04目
录文件概述0102文本文件操作03CSV文件操作移动/复制/删除文件创建/删除/遍历目录文件路径操作目录是组织和管理文件的关键组件shutil模块os模块6.4目录操作136shutil模块move():移动文件,移动后原位置的文件不存在copy():拷贝文件,复制后不会更改原文件若目标位置已经存在同名文件,该文件将被覆盖6.4.1文件移动和复制136importshutilsrc1='src_files/230114.log'#原文件路径dst1='dst_files/230114.log'#目标文件路径shutil.move(src1,dst1)#移动文件src2='src_files/230115.log'#原文件路径dst2='dst_files/230115.log'#目标文件路径shutil.copy(src2,dst2)#复制文件示例6-16os模块remove():删除文件,操作不可逆6.4.2文件删除136importosfile_path='src_files/230116.log'os.remove(file_path)示例6-17os模块mkdir():创建目录rmdir():删除目录6.4.3目录创建和删除136importosdir_path='test_dir1'os.mkdir(dir_path)os.rmdir(dir_path)示例6-18os.walk():递归遍历指定目录每次返回一个三元组:(dirpath,dirnames,filenames)dirpath:当前正在遍历的目录路径dirnames:该目录下的子目录列表filenames:该目录下的非目录文件列表6.4.4目录遍历136importosforroot,dirs,filesinos.walk('E:/src/'):forfileinfiles:print(os.path.join(root,file))示例6-19os.listdir():返回指定目录下所有文件和子目录的列表,不递归遍历子目录6.4.4目录遍历137importosfiles=os.listdir('../chapter06')forfileinfiles:print(file)示例6-20os.path.exists():检查指定文件或目录是否存在,如果存在则返回True,否则返回False6.4.5文件路径操作137importosimportshutilsrc='src_files/230115.log'#原文件路径dst='dst_files/230115.log'#目标文件路径ifos.path.exists(dst):next_step=input(f'{dst}已存在,仍要复制吗?(Y/n):')ifnext_step=='Y':shutil.copy(src,dst)print('拷贝完成!')else:print('拷贝停止!')示例6-21os.path.join():将多个路径拼接成一个完整的文件路径字符串6.4.5文件路径操作137importosroot=r'E:\src'sub_dir='chapter06'file_name='demo.txt'full_path=os.path.join(root,sub_dir,file_name)print(full_path)#打印:E:\src\chapter06\demo.txt示例6-22os.path.abspath():返回指定文件的绝对路径,如果给定的路径已经是绝对路径,则返回该路径;否则将其转换为绝对路径6.4.5文件路径操作138importosrelative_path='6-18.py'
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度红十字应急救护知识培训课件
- 2024年度甲方租赁乙方云计算资源用于数据处理的合同
- 2024年度装修工程安全文明施工合同
- 2024年度储罐用高性能焊接材料供应合同
- 《就业指导案例》课件
- 2024年度股权投资合同投资金额与用途
- 《复合材料板簧》课件
- 2024年度融资租赁合同标的租赁物、租金与还款协议
- 人教版小学语文二年级下册全册教
- 《胸腔穿刺术》课件
- 人教部编版六年级道德与法治上册第6课《人大代表为人民》精美课件
- 期末 (试题) -2024-2025学年外研版(三起)(2024)英语三年级上册
- 第五单元测试卷(单元测试)2024-2025学年统编版语文四年级上册
- 《金融科技概论(第二版)》高职全套教学课件
- 心衰健康宣教课件
- 药事管理学实践报告总结
- 2024年大学计算机基础考试题库附答案(完整版)
- (2024年)传染病培训课件
- 物理化学实验B智慧树知到课后章节答案2023年下北京科技大学
- 电力行业企业安全生产岗位责任清单
- HXD3C型机车停放制动装置原理与操作
评论
0/150
提交评论