python中os文件操作模块,案例解析

【Python】之 os.path 模块详解 总结: os.path 模块是系统路径操作模块,但实际的原理可以把它认为是处理包含斜杠("/")和反斜杠("\")字符串的模块,其中,斜杠("/")是 linux 系统下的路径分隔符,和反斜杠("\")是 windows 系统下的路径分隔符。 也就是说,只要提供一个包含斜杠和反斜杠的字符串,os.path 模块都能处理,哪怕该字符串不是一个有效的真正路径,因为 os.path 模块的源码实现就是根... 阅读详情

案例一:对指定路径下的文件按照时间排序,并对文件重名:

        注意:

        1.获取文件时间的方法os模块下的 .getatime(‘文件路径’)得到一个时间值

        2.排序通过匿名函数,对时间进行排序

        3.重命名文件使用os模块下的 .rename('旧文件路径',‘新文件路径’),拆分文件路径然后再组装路径。源码如下:

import os
path='文件'
def get_time(path):
    return os.path.getatime(path)

# 遍历文件夹下的所有文件,然后调用上边的方法获取所有文件的修改时间
# for x in os.listdir(path):
#     print(path+'\\'+x)
#改写为列表推导式
files=[path+'\\'+x for x in os.listdir(path)]

# 排序按照关键字排序,对时间方法排序,调用时间方法,x指传入的文件路径
files.sort(key=lambda x:get_time(x))
# print(files)

# 计数器,文件前加序号
seq=1
for x in files:
    # print(x.split('.'))
    sp=x.split('.')
    # .join()传入两个参数,原路径,新路径
    os.rename(x,os.path.join(path , str(seq) +'-'+ sp[0].replace(path+'\\','') + '.'  + sp[-1]))
    seq += 1

实现结果展示:

案例二:向 .txt 文本文档中读取、写入内容

        注意:写入txt的内容只能是字符串,或bytes类型,写入前注意转换。源码如下:

def is_prime(num):
    '''定义一个判断素数的方法,方便后续调用'''
    for i in range(2,int(num**0.5)+1):
        if num % i !=0 and num != 1:
            return num

def main1():
    '''读取文档中所有的素数'''
    with open('text1.txt','r',encoding='utf-8') as fp:
        for x in fp.readlines():
            if is_prime(int(x)):
                print(x)

def main2():
    '''读取文档中每一行的内容,内容有非整数,找出所有的素数'''
    with open('text2.txt','r',encoding='utf-8') as fp:
        for x in fp.readlines():
            # 异常调试
            try:
                if is_prime(int(x)):
                    print(x,end=' ')
            except ValueError:
                pass

def main3():
    '''向文件中写入指定范围素数'''
    with open('text3.txt', 'w+', encoding='utf-8') as fp:
        for x in range(1,10000):
            if is_prime(int(x)):
                fp.write(f'{x}\n')    # txt只能写入字符串str 和二进制字符串bytes

if __name__ == '__main__':
    main1()
    main2()
    main3()

案例三:以json的格式将数据写入文本文档

        注意:从python中写入到文本文档中,用 json.dumps() 序列化;

                   从文本中读取数据,json.loads() 反序列化。源码如下:

import json
### 将1-9999之间的素数写入到一个文本文件中,每行一个数字。
def is_sushu(num):
    for i in range(2,int((num)**0.5)+1):
        if num % i == 0:
            return False
    return True

def writefile():
    with open('tes.txt','w+',encoding='utf-8') as fp:
        for x in range(1,10000):
            if is_sushu(x):
                fp.write(str(x)+'\n')

### 将1-9999之间的素数放到一个列表中,将列表写入文件。
list1=[num1 for num1 in range(1,10000) if is_sushu(num1)]
with open('tes1.txt','w',encoding='utf-8') as fp:
    # 从python中写入文本,用json序列化
    fp.write(json.dumps(list1))

### 读取练习3或练习4中生成的文件获得素数的列表,将列表变成一个字典,字典中的键是列表中的元素,值是该元素的平方。
with open('tes1.txt','r',encoding='utf-8') as fp:
    # 从文本中读取数据,json反序列化
    data=json.loads(fp.read())
    dict1={i:i**2 for i in data}
    print(dict1)

案例四:递归删除文件夹(可能包含子文件或子文件夹)

        需求:要先将文件夹中的所有子文件删除再删除本文件夹【温馨提示:创建一个文件夹,不要直接操作已有的文件夹】

        注意:remove( ): 删除文件;rmdir( ): 删除空目录(空文件夹)。源码如下:

import os
def remove_dir(path):
    try:
        # 遍历路径
        for x in os.listdir(path):
            #拼接文件的路径
            path1 = os.path.join(path, x)
            if os.path.isdir(path1):
                #递归调用原函数
                remove_dir(path1)
            elif os.path.isfile(path1):
                # 删除指定路径的文件
                os.remove(path1)
        else:
            # 当文件中没有任何文件时执行这一步,删除空文件夹
            os.rmdir(path)
    # 对异常进行处理
    except FileNotFoundError:
        print('系统找不到指定的路径!!')

if __name__ == '__main__':
    remove_dir('newdir/dir1')

案例五:复制目录,考虑拷贝所有子文件,完全复制一个文件到指定文件路径下

        提示:遍历sourcePath下的所有子目录和子文件

                1,如果是子文件,则复制文件

                2,如果是子目录,在目标目录创建相同的目录名称,递归调用 

        注意:子文件或子目录的绝对路径。源码如下:

import os
def copyPath(sourcePath, targetPath):
    # 判断原目录是否存在
    if not os.path.exists(sourcePath):
        return "目录不存在"
    try:
        # 判断目标目录是否存在,如果不存在则创建
        if not os.path.exists(targetPath):
            os.mkdir(targetPath)

        for x in os.listdir(sourcePath):
            path1=os.path.join(sourcePath,x)
            if os.path.isdir(path1):
                # 如果是文件夹则在新文件夹中创建一个同名的文件夹,实现完全复制一个一模一样文件的功能
                os.mkdir(targetPath+'\\'+x)
                # 调用原函数,传入路径进行自动更新
                copyPath(path1,targetPath+'\\'+x)
            else:
                file = open(path1, 'r', encoding='utf-8')
                new_path=targetPath+'\\'+x
                fp = open(new_path, 'w', encoding='utf-8')
                # 写入文件,以指定大小1024字节读取、写入
                while True:
                    data=file.read(1024)
                    fp.write(data)
                    if data:
                        break
                file.close()
                fp.close()
    # 异常处理
    except FileExistsError:
        print('当文件已存在时,无法创建该文件')

if __name__ == "__main__":
    # 将sourcePath目录的所有内容拷贝到targetPath目录下
    sourcePath = r"XXXXXXXXXX\homework\newdir"
    targetPath = r"XXXXXXXXXXX\homework\dir4"
    copyPath(sourcePath, targetPath)

案例六:统计当前目录下的文件数量和文件夹数量;使用函数递归,分别统计文件夹中文件和文件夹的个数。

   提示:1.如果碰到文件,则文件数量+1;

             2.如果是文件夹,则文件夹数量+1,递归调用fn()传入当前子文件夹路径,访问内部的文件

   注意:此处容易踩坑,在函数外部定义一个计数器,在函数内部进行修改时,声明全局变量

             源码如下:

import os
dir_count=0
file_count=0
def fn(dirPath):
    # 在外部定义一个计数器,在函数内部进行修改,设置为全局变量
    # 如果在函数内部定义计数器,只会返回循环体最后一次出现的值
    global dir_count,file_count

    for x in os.listdir(dirPath):
        path1=os.path.join(dirPath,x)
        if os.path.isdir(path1):
            dir_count+=1
            fn(path1)
        else:
            file_count+=1
    return dir_count,file_count

if __name__ == '__main__':
    path=r'XXXXXXXXX\newdir\dir3'
    print(fn(path))

python文件操作整理 python读写文件有三种形式:读、写、追加 一、读模式 r 和读写模式 r+ 1、读模式 r 特点:只能读不能写,文件不存在时会报错 2、读写模式 r+ 特点:可以读也可以写,是覆盖写,会把文件最前面的内容覆盖;文件不存在时会报错 二、写模式 w 和写读模式 w+ 1、写模式 w 特点:只能写不能读;写的时候会把原来的文件内容清空;当文件不存在时,会创建新文件 2、写读模式 w+ 特点:可以写也... 阅读详情

相关推荐

第三十天:Python文件系统操作

Python提供了丰富的文件系统操作模块,包括os、os.path、pathlib和shutil等,用于处理文件和目录操作。文章详细介绍了os.path模块的核心功能,如路径拼接(join)、分解(split)、属性检查(exists, isfile)和规范化处理(normpath)等。通过实用代码示例展示了如何获取文件信息、处理路径差异以及时间相关操作。这些工具能跨平台工作,自动适应不同操作系统的路径格式,是Python文件处理的基础设施。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 760

python模块: os

python模块: os 1.简单应用 列出当前目录下的所有目录 [ x for x in os.listdir(’.’) if os.path.isdir(x)] os.listdir(path) # 返回path指定的文件夹包含的文件或文件夹的名字的列表。 列出当前目录下所有的.py文件 [ x for x in os.listdir(’.’) if os.path.isfile(x) and os.path.splitext(x)[1]==’.py’] os.path.splitext(“

lyp 228

VOWIFI--相关的协议文档

一、3GPP相关协议文档 3GPP 23.402 Architecture enhancements for non-3GPP accesse- //重要 整体框架结构和流程,3GPP和NON-3GPP切换 3GPP 36.304  User Equipment (UE) procedures in idle mode //重要,终端在空闲状态下3GPP与NON-3GPP之间的重选方法   3GP

时九博客 3580

#Python中的目录处理

1.os模块的常用目录处理函数 mkdir(path,[mode=0777])      创建一个path指定的目录,mode为目录的权限设置,默认为0777(读取、写入、执行) makedirs(name,mode=511)   创建多级目录,如'd:/path1/path2/'则在d盘中新建一个path1然后再在path1目录中新建一个path2 rmdir(path)

hualusiyu的专栏 784

[数据转换]将NetCDF(NC)文件转换成单个GeoTIFF文件

有时候要提取tif格式数据中的气象数据,但从气象网站上下载的却是NC格式的文件。这就需要我们将NC格式的文件转换成TIF格式的文件。

G_sea_young的博客 1004

【AI深究】合成数据(Synthetic Data)深度解析:原理、算法与工程实践——全网最详细流程|核心原理、主流方法、数学表达、工程实践与细节、未来趋势|GAN、VAE、语言模型LLM合成如GPT

大家好,我是爱酱。本篇延续将会系统梳理合成数据(Synthetic Data)的核心原理、主流方法、数学表达、工程实践与未来趋势,结合数学公式,帮助你全面理解这一AI建模的关键技术。 注:本文章含大量数学算式、详细例子说明及大量代码演示,大量干货,建议先收藏再慢慢观看理解。新频道发展不易,你们的每个赞、收藏跟转发都是我继续分享的动力!

AI人工智能爱酱~你的AI学习好帮手~ 4926

Python列表嵌套详解

cate = [path + x for x in os.listdir(path) if os.path.isdir(path + x)] >>> a=[x for x in range(10)] >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a=[x for x in range(10) if x%2...

天上掉下两毛钱 6242

中国 it 集成商 主要有哪些 主要做什么工作

既要懂技术(云计算/AI),又要吃透行业(金融/政务)。:用国产化方案(麒麟OS+达梦数据库)替换Oracle/Windows。:如为银行搭建数据中心(采购华为服务器+思科交换机)。:数据中心监控、故障处理(如华胜天成服务国家电网)。:核心交易系统(如中科软为保险公司开发精算平台)。:智慧城市(如太极股份承建“一网通办”政务平台)。:HIS医院信息系统(如东华软件的电子病历系统)。:硬件透明化(如服务器价格战)压缩集成毛利。:工厂设备联网(新华三的工业互联网平台)。

hxsln11的博客 3035

python递归实现在目录以及子目录下,查找包含特定字符的文件

一、 #!/usr/bin/env python3 #-*-coding=utf-8-*- '在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出绝对路径' __author__='gkm' import os def FindFile(path,tagfile): for ipath in os.listdir(path): fulldir =...

u011093930的专栏 2048

麒麟V10系统下CoreDump文件自动归档与快速定位指南(附coredumpctl实战)

本文详细介绍了在麒麟V10操作系统下,如何利用systemd-coredump机制和coredumpctl工具实现CoreDump文件的自动化管理与高效调试。内容涵盖从系统架构解析、自动化配置策略,到使用coredumpctl进行快速查询、过滤与深度分析的实战指南,旨在帮助运维人员和开发者快速定位系统崩溃的根本原因,提升问题排查效率。

gg901的博客 221

黑猫带你学eMMC协议第11篇:eMMC擦除详解(erase/trim/discard/sanitize/secure erase/secure trim...)

erase命令单位是擦除组,那么一个擦出组包含多个写块,不同写块有不同信息,主机擦除之前,必须进行确定好这些写块中的信息没有用了。所以通常erase用来擦除整个设备或分区。erase完成后,将erase的区域都要么是全0,要么是全1。那么到底是0还是1呢,根据不同的工艺有所不同,但是别担心,在ecsd[181]中会有说明到底是1还是0。erase命令的作用就是简单的将映射地址范围移动到未映射的地址范围。

黑猫奥利奥的博客 7797

python批量处理目录下所有文件的txt文件

motivation:为了研究某设备的寿命,需对所有采集到的信号进行处理,以预测剩余使用寿命 problem:数据量比较大,大概有半年的数据,按一定的采样频率保存在txt文件中。现需要将所有的数据统计并处理 method:利用Python读取保存目录下所有文件夹的txt文件,并提取所有txt文件保存为一个包括所有数据的文件 问题思考:差不多十多年没有写过程序,处于从头开始学习编程,遇到问题的时候...

思索的蜗牛的专栏 7189

SAP Fiori Launchpad 上看不到任何 tile 应该怎么办?

中心UI组件是一个框架,为所有SAPFiori应用程序提供公共基础设施SAPFiorilaunchpad是所有SAPFioriUI的基础,并为SAPFiori应用程序提供基本功能,如登录,界面大小,应用程序之间的导航,和基于角色的应用程序目录。ABAP前端服务器包含所有基础设施组件,用于为客户端生成SAPFiori应用程序特定的UI,并与SAPBusinessSuite后端系统通信。SAPFiori应用程序的处理过程如下首先,客户端加载SAPFiori应用程序的界面。...

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 941

os模块大全详情

python常用模块目录 一:os模块分类: python os.walk详解 二:os模块大全表 序号 方法 方法 1 os.access(path, mode) 检验权限模式 2 os.chdir(path) 改变当前工作目录 3 ...

weixin_34174132的博客 235

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

python的文件操作——带图详解

文章目录文件操作之读文件说明读取文件 实操当前包中读取文件操作之写文件二进制拷贝图片文件操作之os模块说明os模块os.path模块os.walk方法shutil和zipfile模块递归实现遍历所有文件和目录os调用操作系统命令os执行可执行文件 文件操作之读文件 说明 open() 方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。 注意:使用 open() 方法一定要保证关闭文件对象,即调用 c

崔崇鑫的博客,你linux/云运维工作中的百科全书。 1554

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Python中的os库

https://blog.youkuaiyun.com/xxlovesht/article/details/80913193?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLear

m0_49089298的博客 166

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Python函数:os

Python的os模块是标准库中用于操作系统交互的核心工具,提供了跨平台的文件和目录操作功能。文章详细介绍了os模块的三大核心功能:1) 目录操作(如getcwd、listdir、mkdir等);2) 文件操作(如remove、rename、exists等);3) 路径处理(如join、split、splitext等)。还包含环境变量管理、系统命令执行等实用功能,并提供了递归遍历目录、批量重命名等实战示例。特别强调使用os.path.join()保证跨平台兼容性,以及异常处理的重要性。文章推荐结合shuti

m0_56482679的博客 771

Python对Linux系统的管理

Python对Linux系统的管理 一、OS模块常用功能 1、os模块打开文件 方法如下: os.open(filename, flag, [,mode]) flag参数说明: os.O_CREAT # 创建文件 os.O_RDONLY # 只读方式打开 os.O_WRONLY # 只写方式打开 os.O_RDWR # 读写方式打开 2、os模块对文件进行操作 常用方法如下: # 读取文件 ...

weixin_45636702的博客 1331

Python文件操作全指南:从基础到高级技巧

文件操作是编程中的基础核心技能,Python通过内置函数和标准库提供了强大的文件处理能力。理解文件读写原理对于数据处理、日志分析和系统管理至关重要。Python的open()函数支持多种模式,包括文本和二进制操作,配合with语句可确保资源安全释放。在实际工程中,文件操作广泛应用于数据分析、爬虫开发和自动化脚本等场景。针对大文件处理,可采用分块读取和内存映射技术优化性能。掌握文件指针控制、编码处理和并发访问等进阶技巧,能显著提升开发效率。本文特别详解了Python文件打开模式、上下文管理器和os模块等热词相

weixin_34319111的博客 336

Python模块——os模块详解

os模块详解

数据分析与统计学之美 5万+

Python 基础:文件操作与 os 模块全解析

os 模块提供了与操作系统交互的各种功能,包括文件和目录操作、进程管理、环境变量操作等。在处理文件和目录相关任务时,os 模块非常强大且常用。

2301_81718046的博客 879

【Python】os模块

本文系统解析Python os模块的多个功能方法,通过企业级案例展示文件操作、路径管理、进程控制等核心技术,提供跨平台开发的最佳实践与性能优化方案。

赶紧的博客 1809

Python之OS模块39个常用函数详解

os,语义操作系统,所以该模块就是操作系统相关的功能了,用于处理文件和目录这些我们日常手动需要做的操作。 比如新建文件夹、获取文件列表、删除某个文件、获取文件大小、重命名文件、获取文件修改时间等,该模块就包含了大量的操作系统操作函数,精选常用的进行解析,希望对大家有所帮助。 os下面有很多函数,调用方式一般为os.name,其中比较特殊的是Path,Path模块是OS的一个子模块,下面又有很多的函数,调用方式一般为os.path.isfile。刚接触的可能不大明白,需要注意下。 #加载 import os

wulishinian的博客 3万+

Python中 os 模块、sys 模块的作用和文件操作的使用介绍

os 模块中常用的方法 os.remove() 删除文件 os.rename() 重命名文件 os.walk() 生成目录树下的所有文件名 os.chdir() 改变目录 os.mkdir/makedirs 创建目录/多层目录 os.rmdir/removedirs 删除目录/多层目录 os.listdir() 列出指定目录...

多谢大人光临寒舍,请随便看看,喝口茶吧 ☕️☕️☕️ 1344

lesson15:Python的文件操作

本文系统介绍了Python文件操作的核心知识,包括三个主要模块:文件基础操作、文件系统交互和JSON数据处理。首先详细解析了open()函数的基本语法和参数配置,涵盖文本/二进制文件的读写操作及with语句的优势。其次讲解了os和os.path模块的路径处理、目录管理和文件属性操作。最后深入探讨了json模块的序列化与反序列化技术,包括自定义数据类型处理。文章还提供了批量处理文本文件和JSON配置文件读写的实战案例,并总结了路径拼接、编码规范、异常处理等最佳实践。通过本文,读者可以全面掌握Python文件操

2402_82363599的博客 1188
上一篇: 发送邮件(用代码模拟邮箱服务器发送邮件)
下一篇: python迭代器、生成器案例解析
continue_v
博客等级 码龄5年 17粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值