当前位置: 代码网 > it编程>前端脚本>Python > 详解Python遍历文件和文件路径拼接

详解Python遍历文件和文件路径拼接

2024年12月03日 Python 我要评论
一、os.walk()文件(夹)读取遍历指定路径下的所有文件和文件夹示例代码如下 mdffolder= "d:\hanshan\mdf" for root, dirs, files in

一、os.walk()文件(夹)读取

遍历指定路径下的所有文件和文件夹

示例代码如下

    mdffolder= "d:\hanshan\mdf"
    for root, dirs, files in os.walk(mdffolder):
        # root为根目录,即读取的文件夹目录(mdffolder)
        print('root: ', root)
        # dirs为子文件夹,即当前读取的子文件夹
        print('dirs: ', dirs)
        # files为读取到的文件列表
        print('files: ', files)
        # 当前程序所在位置的路径
        print('current dir: ', os.getcwd())

二、os.path.join()文件路径拼接

(跨系统也可用)

1. 介绍

在不同的操作系统种路径的拼接符号是不一样的,如windows系统是\,linux系统是/

为了程序能在不同系统中都能同样执行,在python种使用os.path.join可以自动适配系统路径符号

2. 使用

引入os库

使用os.path.join()函数

传入参数,可以是两个参数也可以是三个参数

2.1 两个参数

两个参数时,第一个是路径前缀(可通过os.getcwd()获取当前位置系统路径),第二个参数是文件名

如os.path.join(os.getcwd(),'test.txt')

如果系统为windows,且当前系统路径为d:\projects\demo,则拼接后的结果为d:\projects\demo\test.txt

2.2 三个参数

三个参数时,第一个是路径前缀,第二个是相对路径(即中间的路径),第三个参数是文件名

如os.path.join(os.getcwd(),'test','test.txt')

如果系统为windows,且当前系统路径为d:\projects\demo,则拼接后的结果为d:\projects\demo\test\test.txt

3. 示例代码

具体的参考代码可参考以下

# 用于获取文件的系统路径
import os

# 读取本地文件夹种的mdf文件列表
def readmdffolder(mdffolder):
    # 所有文件的全路径列表
    fullpathlist = []
    for root, dirs, files in os.walk(mdffolder):
        # root为根目录,即读取的文件夹目录(mdffolder)
        print('root: ', root)
        # dirs为子文件夹,即当前读取的子文件夹
        print('dirs: ', dirs)
        # files为读取到的文件列表
        print('files: ', files)
        # 当前程序所在位置的路径
        print('current dir: ', os.getcwd())
        for file in files:
            # 文件全路径合成,包含系统路径和文件名,该拼接方式会根据操作系统路径符号进行拼接,注意,mdf为相对路径,不加该参数则会将当前程序所在系统路径和文件名进行拼接
            fullpath = os.path.join(os.getcwd(), 'mdf', file)
            # 将文件路径放入列表
            fullpathlist.append(fullpath)
    print("===========")
    # 将完整路径的列表打印
    print(fullpathlist)

# 当前位置的mdf文件夹
folder = "./mdf"
# 调用方法读取当前位置的mdf文件夹
readmdffolder(folder)

4. 打印结果

拼接后的结果如下

到此这篇关于详解python遍历文件和文件路径拼接的文章就介绍到这了,更多相关python遍历文件和路径拼接内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com