主要针对于很多的博主对于这两个模块中的一些常用的函数,以及相关输入参数没有做出一个很好的说明,我重新整理相关函数内容,并且同时增加了一些在平时还比较有用的实例用于辅助大家进行学习,主要参考的博客内容如下:
知乎os详解:https://zhuanlan.zhihu.com/p/150835193https://zhuanlan.zhihu.com/p/150835193
知乎shutil详解:
https://zhuanlan.zhihu.com/p/150835193https://zhuanlan.zhihu.com/p/150835193(352条消息) python自动化办公【一、文件自动化处理】_C.微光的博客-CSDN博客https://blog.csdn.net/weixin_44818540/article/details/125772332?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168009337716782427446242%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168009337716782427446242&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-5-125772332-null-null.142%5Ev77%5Einsert_down38,201%5Ev4%5Eadd_ask,239%5Ev2%5Einsert_chatgpt&utm_term=for%20foldName%2C%20subfolders%2C%20filenames%20in%20os.walk%28path%29&spm=1018.2226.3001.4187
一、OS模块
这一部分内容并不是很重要,你们需要的高级操作主要集中于第二部分的shutil中
其实不管如何,使用python代码对文件系统进行操作和控制,都需要一定的权限,也请务必注意每个函数操作的对象是文件还是目录(会出现各种各样的权限错误,虽然不一定是)
OS模块 (Operate System)是一个很早就有的Python关于文件系统进行操作的模块,我们可以使用它完成对文件夹中的内容进行文件名识别,读取,删除以及复制等操作,也可以对文件夹进行相关操作(删除非空文件夹)
1.0 前言
使用该模块的时候,应该针对不同的情况使用对应的子模块:
- 当只是对路径做操作时,请使用子模块os.path
- 逐行读取多个文件,请使用os.fileinput模块
- 创建临时文件和路径,请使用os.tempfile模块
在导入模块时,使用以下语句,能够避免os.open()所造成的错误
import os
from os import *
网上的许多教程以接口为导向说明的,范例较少,我们会在此次文档说明中增加范例,使得大家看了就可以上手,主要分为三个部分:工作路径操作,路径下的文件操作,路径下的目录操作。
2.具体操作函数及其范例
1.工作路径操作
os.getcwd()获取当前工作目录,返回为字符串信息
current_filename=os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径
current_filename
os.chdir()切换工作路径
os.chdir('d:\\Desktop') #改变当前脚本工作目录;相当于shell下cd
current_filename=os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径
current_filename
os.path()将多个路径做连接(优先返回(最后一个)绝对路径)
>>> os.path.join("just", "do", "python", "dot", "com")
'just\\do\\python\\dot\\com'
>>>
>>> os.path.join("just", "do", "d:/", "python", "dot", "com")
'd:/python\\dot\\com'
>>>
>>> os.path.join("just", "do", "d:/", "python", "dot", "g:/", "com")
'g:/com'
os.path.exists()
os.path.split()路径操作函数(这一部分之后的函数可以不看了,有需要再去看)
主要的功能是将最底层的路径名分割出来
>>> operate_path = 'D:\Desktop\wakaay\personal\Python\os_test.ipynb'
>>> os.path.split(operate_path)[1] #将路径分割成目录和文件名二元组返回
'os_test.ipynb'
>>> os.path.split(operate_path)[0] #将路径分割成目录和文件名二元组返回
'D:\\Desktop\\wakaay\\personal\\Python'
os.path.abspath()规范化路径格式
>>> os.path.abspath("a:/just/do/python")
'a:\\just\\do\\python'
2.文件操作
3. 目录操作
os.makedir()创建
# 创建目录且目录名为dirname
dirname = 'test'
mode = 0o755 #八进制数代表了目录的权限
# 在当前目录下创建目录
makedirs(dirname, mode)
# 在指定路径(d://desktop)下创建目录
makedirs('d://desktop//test')
这里给大家讲一下mode(权限模式的含义):它是一个八进制的三位数字第一位代表所有者的权限,第二位代表所属组的权限,第三位代表其他人的权限
以上图中7 5 5为例,7就是代表所有者的权限:rwx(4+2+1)
其中r 代表阅读权限,w代表可写入权限,x代表运行权限,如果拥有对应的权限那么对应位置上的二进制就为1,再举一个例子 上图中的 5 就是代表所属组的权限:r-x(4+0+1)没有写入权限
4.
当然也就可以根据所得到的信息做整个文件夹的循环处理,例如我希望对文件夹中的文件做具体的处理可以参考以下给出的案例:
这里我们需要对当前文件夹的每一个.txt文件中(output1.txt,output2.txt)——如果没有该文件请创建,加入一行“lc是大帅逼”