[Python自动化办公]01输出目录下所有文件及文件夹

1.os模块简介

参考文件:https://docs.python.org/zh-cn/3/library/os.html

2.输出文件和文件夹

2.1 获取当前Python程序运行路径

import os
print(os.getcwd())

关于路径中的斜杠(/)和反斜杠()
Windows中采用反斜杠()作为文件夹之间的分隔符
,Mac和Linux中采用斜杠(/)作为文件夹之间的分隔符
如果,需要输出反斜杠(),由于反斜杠在Python中用于转义,所以要用两个反斜杠\

print('\\')

输出:\

2.2 自动处理路径连接

os.path.join(’’,’’,’’,…)

import os
print(os.path.join('test1', 'test2'))

绝对路径和相对路径
绝对路径:从根目录开始
相对路径:相对于程序当前运行目录,推荐

2.3 列出当前程序文件夹下的所有文件和文件夹

os.listdir()

import os
print(os.listdir())

换行输出

import os
for item in os.listdir():
    print(item)

2.4 列出指定某个文件夹下的文件和文件夹

os.listdir(指定的绝对路径或相对路径)

import os
print(os.listdir('D:\PyProject\Test'))
print(os.listdir('D:\\PyProject\\Test'))

可以写两个反斜杠,也可以写一个反斜杠

2.5 判断是否为文件夹

os.path.isdir(要判断的文件或文件夹路径)

import os
files = os.listdir()
for file in files:
    print(file, os.path.isdir(file))

True为文件夹,False为文件

2.6 推荐os.scandir() 迭代器(将listdir(),isdir(),path包含)

import os
for file in os.scandir():
    print(file.name, file.path, file.is_dir())

输出:文件名,相对路径,是否为文件夹

3.实战: 统计文件名

要求:
1.找出当前目录下所有非文件夹的文件
2.统计其中包含有“Python”单词的文件数量
3.不区分大小写,即大小写都包括在内
4.输出文件数量

3.1 学习版

import os

num = 0
match_name = "python"
for file in os.scandir():
    # 找出非文件夹的文件
    if file.is_file():
        # lower()将文件名全转为小写
        # in检测文件名中是否包含“python”
        # 统计数量
        if match_name in file.name.lower():
            num += 1
print(num)

3.2 衍生: 通用版

import os

def file_count(name):
    num = 0
    for file in os.scandir():
        if file.is_file():
            if name in file.name.lower():
                num += 1
    return num
    
if __name__ == "__main__":
    file_name = input("输入统计的文件名:")
    print('含{name}的文件数量:{num}'.format(name=file_name, num=file_count(file_name)))

4.拓展知识

4.1 .format() 新版输出格式

过去旧版格式化%输出

print('含%s的文件数量:%d'%(file_name, file_count(file_name)))

.format() 常用输出写法

# 第一种省略变量
print('含{}的文件数量:{}'.format(file_name, file_count(file_name)))
# 第二种具体指明
print('含{name}的文件数量:{num}'.format(name=file_name, num=file_count(file_name)))

4.2 os.scandir() 具体参数

方法 说明
name 文件(夹)名
path 文件(夹)相对路径
is_dir(*,follow_symlinks=True) 判断是否为文件夹
is_file(*,follow_symlinks=True) 判断是否为文件
is_symlink() 判断是否为符号链接
stat(*,follow_symlinks=True) 获取文件信息,具体参数看下表
inode() 返回文件的索引节点号

关于stat()获取文件信息具体使用,在后面笔记有详细使用,此次仅作拓展了解

stat结构 说明
st_mode inode模式
st_ino indoe节点号
st_dev inode驻留的设备
st_nlink inode的链接数
st_uid 所有者的用户ID
st_gid 所有者的组ID
st_size 普通文件以字节为单位的大小
st_atime 上次访问的时间
st_mtime 最后一次修改的时间
st_ctime 在Windows为创建时间

PS:代码均基于Python3.7环境下运行检验,如有不足欢迎评论交流。

发布了1 篇原创文章 · 获赞 0 · 访问量 4

猜你喜欢

转载自blog.csdn.net/qq1964274732/article/details/105331829