os模块

发布于 2023-08-10  2289 次阅读


1.切换目录 查看目录

以列表形式列出该目录下文件

import os
os.chdir(r"E:\projecttest")
print(os.getcwd())
print(os.listdir(r"E:\projecttest"))

E:\projecttest
['.idea', 'byteDemo.py', 'dict.py', 'dictDemo.py', 'dirDemo.py', 'files', 'IO&re.py', 'ioDemo.py', 'IOmode.py', 'list.py', 'list_for.py', 'logCheck.py', 'main.py', 'no1.py', 'no2.py', 'reDemo.py', 'venv', 'webUV.py', 'yuanzuDemo.py']

Process finished with exit code 0
2.文件重命名
import os
os.rename(r"E:\projecttest\files\file02.txt",r"E:\projecttest\files\file_new.txt")
3.创建目录
os.mkdir(r"e:\projecttest\newdir")    #创建单个目录
os.makedirs(r"e:\projecttest\linux\python") #递归创建目录 相当于linux mkdir -p
4.删除文件
os.remove(r"E:\projecttest\files\file_new.txt")
5.递归获取目录下的文件
import os
for i in os.walk(r"E:\projecttest\linux"):
    print(i)
#("首层目录名称",[子目录名称,子目录名称],[文件名称,文件名称])
('E:\\projecttest\\linux', ['maos', 'python'], [])
('E:\\projecttest\\linux\\maos', ['mac'], ['beijing'])
('E:\\projecttest\\linux\\maos\\mac', [], [])
('E:\\projecttest\\linux\\python', [], ['test.py'])

Process finished with exit code 0
6.案例小结

案例:获取目录下所有文件的绝对路径

import os
for i,j,k in os.walk(r"E:\projecttest\linux"):
    if len(k) > 0:
        for f_name in k:
            path = i +"\\" + f_name
            print(path)

E:\projecttest\linux\maos\beijing
E:\projecttest\linux\maos\shanghai
E:\projecttest\linux\python\test.py

Process finished with exit code 0

案例:文件批量重命名

import os
#递归遍历拿到每个文件
for i,j,k in os.walk(r"E:\projecttest\linux"):
    if len(k) > 0:
        for f_name in k:
            full_file_name = i +"\\" + f_name
            #判断所有文件如果是以txt结尾的进行处理
            if full_file_name.endswith("txt"):
                #拿到源文件除去后缀部分
                filename = full_file_name.split(".")[0]
                #拼接新的后缀部分
                newfilename = filename + ".jpg"
                #print(newfilename)
                #print(full_file_name)
                #文件重命名
                os.rename(full_file_name,newfilename)

另一种判断方式 如果以.为分隔符取下标1的值 等于 jpg(前提是所有判断的值都得有.)

import os
#递归遍历拿到每个文件
for i,j,k in os.walk(r"E:\projecttest\linux"):
    if len(k) > 0:
        for f_name in k:
            full_file_name = i +"\\" + f_name
            #判断所有文件如果是以jpg结尾的进行处理
            #这种判断方式full_file_name变量必须全部都是以.为分隔符才行;不然会报错!!!
            if full_file_name.split(".")[1] == "jpg":
                #拿到源文件除去后缀部分
                filename = full_file_name.split(".")[0]
                #拼接新的后缀部分
                newfilename = filename + ".txt"

                #文件重命名
                os.rename(full_file_name,newfilename)
还记得妞妞吗
最后更新于 2023-08-10