版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务4.2文件的定位和管理——数据采集技术
任务描述010203知识点定位文件管理文件和目录
任务描述01
任务描述建军发现文件指针可能指向文件的不同位置,要想灵活操作文件,就需要使用Python的文件定位和管理功能,本任务将通过示例学习文件的定位、管理以及目录的管理,具体思路为:(1)使用seek()函数定位文件的读写位置。(2)使用tell()函数查询当前文件读写位置。(3)使用truncate()函数截断文件至指定字节数。(4)使用os模块对文件及目录进行查找、判断、创建、删除等操作。
定位文件02
定位文件文件指针定位
通过seek()函数实现文件指针的精确定位,支持相对或绝对位置调整。当前位置查询
使用tell()函数实时获取文件读写指针的当前位置信息。文件内容截断利用truncate()函数按指定字节数截断文件,实现高效内容管理。函数功能说明:移动文件指针到指定位置,定位后续读写文件的起始点语法:seek(offset,whence)offset参数:偏移字节数(可以为正负值)whence参数:基准位置(0=文件头,1=当前位置,2=文件尾)
seek()函数使用示例:withopen("file2.txt","r")asf:f.seek(5,0)#从文件头移动5字节print(f.read(8))#读取后续8字节内容若file2.txt文件内容为:AsaBigDataTechnologystudent,I'mlearningPythonfileoperations.本程序功能为:从文件开头处向后移动5个字符,然后连续读取8个字符,输出的结果是“BigData”。函数功能说明:移动文件指针到指定位置,定位后续读写文件的起始点语法:seek(offset,whence)offset参数:偏移字节数(可以为正负值)whence参数:基准位置(0=文件头,1=当前位置,2=文件尾)
seek()函数使用示例:withopen("file2.txt","rb")asf:f.seek(-11,2)#从文件尾向前移动11字节print(f.read().decode())#读取剩余内容本程序功能为:
从文件末尾处向前移动11个字符,然后连续读取文件从当前位置到文件结尾所有的字符,输出的结果是“operations.”。注意:decode()函数将字节对象转换为字符串。函数功能说明:移动文件指针到指定位置,定位后续读写文件的起始点语法:seek(offset,whence)offset参数:偏移字节数(可以为正负值)whence参数:基准位置(0=文件头,1=当前位置,2=文件尾)
seek()函数使用示例:withopen("file2.txt","rb")asf:f.seek(5,0)#从文件头移动5字节f.read(4)#读取4个字节print(f.read(4).decode())#从当前位置读取4个字节本程序功能为:
第三行代码读取4个字节后,第四行代码从文件的当前位置再向后读取4个字节。由于文件定位时,很容易由于指针位于字符中间而导致读取失败(如位于一个中文字符位置的中间),所以从当前位置读取,也要使用二进制方式打开文件(“rb”),此程序的运行结果是“Data”。函数功能说明:返回当前文件指针的位置(相对于文件头的字节数)语法:file.tell()
tell()函数使用示例:withopen("file2.txt","r")asf:print(f.tell())#初始位置0f.read(5)print(f.tell())#输出5(读取5字符后指针位置)函数功能说明:返回当前文件指针的位置(相对于文件头的字节数)语法:file.tell()
tell()函数使用示例:withopen("file2.txt","rb")asf:f.seek(-11,2)print(f.tell())#输出60(指针已移动到第60字节)print(f.read(10).decode())#输出operationsprint(f.tell())#输出70(读取10个字节后指针位置)print(f.read().decode())#输出最后的标点符号“.”函数功能说明:截断文件至指定字节数(若未指定size,则截断至当前位置)语法:file.truncate(size)
truncate()函数使用示例:withopen("file2.txt","r+")asf:f.seek(13)f.truncate()#截断文件,仅保留前13字节程序执行后,file2.txt文件只剩下前13个字符:“AsaBigData”。这里,file2.txt原来的内容是:AsaBigDataTechnologystudent,I'mlearningPythonfileoperations.
管理文件和目录03Python标准库中提供了os模块,提供跨平台的文件管理、目录操作、路径处理等功能。其主要功能有文件及目录的检查、文件及目录的创建、文件及目录的删除、路径的拼接等多种功能。
检查文件是否存在使用示例:importosifos.path.exists("file3.txt"):print("文件存在")else:print("文件未找到")
检查目录是否存在使用示例:directory="datas"ifnotos.path.exists(directory):os.makedirs(directory)#自动创建缺失目录Python标准库中提供了os模块,提供跨平台的文件管理、目录操作、路径处理等功能。其主要功能有文件及目录的检查、文件及目录的创建、文件及目录的删除、路径的拼接等多种功能。
判断是文件或目录使用示例:is_file=os.path.isfile('file3.txt')#若存在,返回Trueprint(is_file)is_dir=os.path.isdir('datas/')#若存在,返回Trueprint(is_dir)#统计子目录数量:dir_count=sum(os.path.isdir(f)forfinos.listdir())print(dir_count)#使用os.path.isdir()函数,查找当前路径下所有的子目录的个数。
仅删除文件不删除目录使用示例:target="temp.csv"ifos.path.isfile(target):os.remove(target)#仅删除文件,避免误删目录#检查“temp.csv”文件是否存在,如果存在,则删除该文件,不会删除同名的目录。
递归创建多级嵌套目录使用示例:os.makedirs("project/bigdata/2025",exist_ok=True)#自动创建多级目录#在当前目录下,递归创建多级目录,如果该目录已经存在了,“exist_ok=True”的作用是不报错;如果不使用该参数,则会提示“当文件已存在时,无法创建该文件。”
动态构建文件路径使用示例:base_url="project"second_url="bigdata"third_url="2025"file_path=os.path.join(base_url,second_url,third_url,'a.txt')print(file_path)#程序运行结果为“project\bigdata\2025\a.txt”,可见使用os.path.join可以动态构建文件的路径。假设在“project/bigdata/2025”目录下有a.txt、b.txt、c.txt等多个文件。可以通过os.path.join()函数来动态构建文件的路径。
批量删除文件使用示例:forfileinos.listdir(os.path.join(base_url,second_url,third_url)):iffile.endswith(".txt"):
os.remove(os.path.join(base_url,second_url,third_url,file))#批量删除文件#“project\bigdata\2025\”目录下a.txt、b.txt、c.txt等多个文件都被删除了。使用os.remove()可以删除文件,如果结合os.path.join动态构建文件路径,则可以实现批量删除目录下所有的文件。
列出目录内容使用示例:#获取当前目录下的所有条目:print(os.listdir())#过滤特定扩展名文件:csv_files=[fforfinos.listdir("datas")iff.endswith(".csv")]print(csv_files)程序说明:第二行代码列出了当前路径下所有的文件和子目录的名称,如:['.gitignore','4.1.1.py',……,'b5.py','datas',……]第四行代码列出了当前路径下“datas”子目录下,扩展名为“csv”的所有文件:['a.csv']使用os.listdir()可以列出当前目录下所有的文件及子目录的名字,返回值类型是列表。如果当前目录下没有任何子目录或者文件,则返回空列表“[]”。如果在os.listdir()函数中写上查找目录,则列出相应目录下所有的文件及子目录的名字。
使用try…except语句处理异常使用示例:try:withopen("data.txt","r")asf:content=f.read()exceptFileNotFoundError:print("文件不存在,请检查路径")#使用try…except…语句可以避免文件或者目录不存在时,代码执行区出现红色的警告文字,可以友好地提示用户该文件不存在,避免后续程序的执行。文件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网店代理合同(8篇)
- 2026年黑龙江省伊春社区工作者考试试题解析及答案
- 中医传统疗法在疼痛治疗中的应用研究
- T/CEC 132-2017 新型城镇化配电建设改造成效评价技术规范
- 风电并网的技术标准与要求
- 2026年老旧小区改造加装电梯充电桩无障碍设施完善指南
- 中智投资有限公司招聘笔试题库2026
- 2026春季中国工商银行湖北省分行校园招聘260人备考题库附答案详解(综合题)
- 哈药集团股份有限公司2026届春季校园招聘备考题库带答案详解(模拟题)
- 2026浙江金华市浦江县教育系统招聘教师20人备考题库及答案详解(各地真题)
- 2026福建浦开集团有限公司、福建浦盛产业发展集团有限公司、福建浦丰乡村发展集团有限公司社会公开招聘补充笔试模拟试题及答案解析
- 桥牌协会内部管理制度
- 2026重庆市南岸区消防救援支队消防文员招录2人笔试备考试题及答案解析
- 2026年山东省立第三医院初级岗位公开招聘人员(27人)笔试备考试题及答案解析
- 2026年滁州天长市大通镇预任制村干及村级后备干部储备库选拔28名笔试备考试题及答案解析
- 2026秋招:广州环投集团笔试题及答案
- 【新教材】人教PEP版(2024)四年级下册英语全册教案(含教学计划)
- 挤塑工艺培训课件
- 生成式AI赋能下的高中地理教师教育观念更新与教学实践研究教学研究课题报告
- 肠道菌群移植培训课件
- T/CAPE 11005-2023光伏电站光伏组件清洗技术规范
评论
0/150
提交评论