当前位置: 首页 > 工具软件 > umbrel-os > 使用案例 >

os、os.path、os.walk模块

姚烨
2023-12-01

os模块

os.system可以直接调用系统的命令

import os
os.system('notepad.exe') #调用记事本
os.system('regedit')  #调用注册表
os.system('ping.www.baidu.com')  #调用网页 乱码问题使用gbk
os.system('cmd') #调用命令指示符

#直接调用可执行文件
os.startfile(r'D:\soft_install\WeChat\WeChat.exe') #打开微信

os模块中关于目录和文件的操作

  1. 获取文件和文件夹信息
import  os
print(os.name)  #windows-->nt  linux和unix-->posix
print(os.sep)   #windows-->\    linux和unix-->/
print(repr(os.linesep))#windows-->\r\n linux-->\n\ repr()是将对象转化为供解释器读取的形式。
print(os.stat('mypy02.py'))  #获取文件所有相关信息
  1. 关于工作目录的操作`
import  os
print(os.getcwd())#获得当前工作目录(current work dir)
print(os.mkdir()) #当前目录的创建
print(os.chdir('d:')) #改变当前目录为d:
  1. 创建目录、创建多级目录、删除
import  os
os.mkdir('相声')  #创建当前目录
os.redir('相声')  #删除指定目录,相对路径是相当于当前的目录而言

os.makedirs('德云社/郭德纲/岳云鹏/刘筱亭') #创建多级目录
os.removedirs('德云社/郭德纲/岳云鹏/刘筱亭')  #删除多级目录,必须保证目录为空目录
os.makedirs('../刘老根/赵本山/二丫')  #../指的是上一级目录
os.rename('德云社','德云男团')  #重新命名文件或者目录名称
print(os.listdir('德云男团'))  #查看目录下的文件列表

os.path模块

os.path中关于目录、路径的操作

  1. 相关判断
import os
import os.path  #from os import path 下面的就可以省略os.
print(os.path.isabs('d:/b.txt'))  #判断是否为绝对路径
print(os.path.isdir('d:/b.txt'))  #判断是否为目录
print(os.path.isfile('d:/b.txt'))  #判断是否为文件
print(os.path.exists('d:/b.txt'))  #判断是否存在
  1. 获得文件基本信息
import os
import os.path
print(os.path.getsize('b.txt'))  #获得文件大小
print(os.path.abspath('b.txt'))  #获得文件的绝对路径
print(os.path.dirname('b.txt'))  #获得文件名所属的目录名
print(os.path.getctime('b.txt'))  #获得文件创建时间create
print(os.path.getatime('b.txt'))  #获得文件访问时间access
print(os.path.getmtime('b.txt'))  #获得文件修改时间modify
  1. 对路径的操作
import os
import os.path
path=os.path.abspath('b.txt')  #获得文件的绝对路径
print(os.path.split(path))    #按照目录和文件切割路径
print(os.path.splitext(path))    #按点切割路径
print(os.path.join('aa','bb','cc'))#路径连接

os.path小练习

使用os.path列出指定目录下的py文件,并输出文件名

import os 
import os.path
path=os.getcwd()  #获得当前工作目录
file_list=os.list(path)  #获得所有文件
for filename in file_list:
	if filename.endswith('py'):  #文件名.endswith(a)以a结尾的文件
		print(filename)

如果使用生成式:

import os 
import os.path
path=os.getcwd() 
file_list2=[filename for filename in os.list(path) if filename.endswith('py')]
for i in file_list2:
	print(i)

os.walk()

用途:可以使用os.walk()来递归遍历所有子目录和子文件

import os
path=os.getcwd()
all_files=[]
file_list=os.walk(path)
for dirpath,dirsname,filesname in file_list:
#dirpath——当前正在遍历的文件夹所在地址
#dirsname——文件夹下所有的目录(不包括子目录)名
#filesname——文件夹下所有文件(不包括子文件)名
	for dir in dirnames:
        all_files.append(os.path.join(dirpath,dir))
        pass
    for file in filenames:
        all_files.append(os.path.join(dirpath,file))
        pass
#打印所有子目录和子文件
for file in all_files:
    print(file)
 类似资料: