目录
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环境下运行检验,如有不足欢迎评论交流。