os 模块提供了一个统一的操作系统接口函数, 这些接口函数通常是平台指定的,os 模块能在不同操作系统平台间自动切换,从而能实现跨平台操作
os模块
- os.name
查询你正在使用的平台。
Windows,返回'nt';
’Linux/Unix用户,返回'posix'
- os.getcwd():获取当前目录,返回str
- os.listdir(path):获取当前目录下的所有文件和目录名 (无法遍历子文件夹),返回list
source_folder = r'C:\Desktop\python基础知识'
a = os.listdir(source_folder)
print(a,'\n', type(a))
> ['Git总结', 'os.md', 'python内部基础知识架构.txt', 'Python基础(下).pdf', 'Python基础.pdf', 'python多版本共存.txt']
- os.makedirs(dirname)和os.removedirs(dirname)
makedirs可以生成多层递归目录(mkdir中间不能有空路径)
removedirs可以删除多层递归的空目录
若目录中有文件则无法生成、删除
- os.remove(filename):删除一个文件
- os.rename(src, dst):文件重命名(类似文件或目录移动,不是复制)
当dst文件已存在时,无法创建该文件
- os.system():运行shell命令
os.system('python3 -V')
- os.walk():通过在目录树中游走输出在目录中的文件名
for root, dirs, files in os.walk(source_folder):
for name in files:
print(os.path.join(root, name))
for name in dirs:
print(os.path.join(root, name))
os.path模块
- os.path.isfile()和os.path.isidr():返回一个bool,分别检验给出的路径是一个文件还是目录(有很多is开头的函数,可以实际中尝试);
- os.path.exists(name):返回一个bool,判断是否存在文件或目录name;
- os.path.basename(path):返回文件名;
- os.path.dirname(path):返回文件路径;
- os.path.getsize(name):返回一个int,获得文件大小,如果是目录返回0;
dir_folder = r'F:\img5\13'
file_folder = r'F:\img5\13\copyPic.py'
a = os.path.getsize(file_folder)
b = os.path.getsize(dir_folder)
print(a, '\n', type(a))
print(b, '\n', type(b))
> 1872
0
- os.path.abspath(name):获得绝对路径;
a = os.path.abspath('ppt2pdf.py')
print(a, '\n', type(a))
> C:XXX\Desktop\小工具\ppt2pdf.py
- os.path.normpath(path):规范path字符串形式;
- os.path.splitext():分离文件名与扩展名;
a = os.path.splitext(file_folder)
print(a, '\n', type(a))
> ('F:\\img5\\13\\copyPic', '.py')
- os.path.split():获取路径的目录名和文件名,返回一个tuple;
destin_folder = r'F:\img5\13\copePic.py'
a = os.path.split(destin_folder)
> ('F:\\img5\\13', 'copePic.py')
- os.path.join(path,name):连接目录与文件名或目录
dir_name = r'F:\img5\13'
file_name = r'copyPic.py'
a = os.path.join(dir_name, 'hello', file_name)
print(a, '\n', type(a))
>F:\img5\13\hello\copyPic.py