# listdir() 获取一个目录中所有子目录和文件的名称列表
#  格式:os.listdir(路径)
#  返回值:所有子目录和文件名称的列表

ld = os.listdir()
print(ld)

常用模块

  • calendar
  • time
  • datetime
  • timeit
  • os
  • shutil
  • zip
  • math
  • string
  • 上述所有模块使用理论上都应该先导入,string是特例
  • calendar,time,datetime的区别参考中文意思

os - 操作系统相关

  • 跟操作系统相关,主要是文件操作
  • 于系统相关的操作,主要包含在三个模块里
    • os, 操作系统目录相关
    • os.path, 系统路径相关操作
    • shutil, 高级文件操作,目录树的操作,文件赋值,删除,移动
  • 路径:
    • 绝对路径: 总是从根目录上开始
    • 相对路径: 基本以当前环境为开始的一个相对的地方

os 模块

import os
# getcwd() 获取当前的工作目录
# 格式:os.getcwd()
# 返回值:当前工作目录的字符串
# 当前工作目录就是程序在进行文件相关操作,默认查找文件的目录

mydir = os.getcwd()
print(mydir)

F:\pythonprojectlocation\com\python\osdemo

 

# chdir() 改变当前的工作目录
# change directory
#  格式:os.chdir(路径)
#  返回值:无

os.chdir('F:\pythonprojectlocation\com')
mydir = os.getcwd()
print(mydir)
F:\pythonprojectlocation\com
# listdir() 获取一个目录中所有子目录和文件的名称列表
#  格式:os.listdir(路径)
#  返回值:所有子目录和文件名称的列表

ld = os.listdir()
print(ld)

 ['python', '__init__.py', '__pycache__']

# makedirs() 递归创建文件夹
# 格式:os.makedirs(递归路径)
# 返回值:无
#  递归路径:多个文件夹层层包含的路径就是递归路径 例如 a/b/c...

rst = os.makedirs("dana")
print(rst)

None

# system() 运行系统shell命令
# 格式:os.system(系统命令)
#  返回值:打开一个shell或者终端界面
# 一般推荐使用subprocess代替

# ls是列出当前文件和文件夹的系统命令
rst = os.system("ls") #windows "dir"
print(rst)

# 在当前目录下创建一个dana.haha 的文集
rst = os.system("touch dana.haha") #touch linux 命令
print(rst)
#getenv() 获取指定的系统环境变量值
# 相应的还有putenv
#  格式:os.getenv('环境变量名')
#  返回值:指定环境变量名对应的值
rst = os.getenv("PATH")
print(rst)

D:\softWare\python3\Scripts\;D:\softWare\python3\;F:\softWare\oracle_home\product\11.2.0\dbhome_1\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;F:\softWare\Java\jdk1.8.0_172\bin;F:\softWare\Java\jdk1.8.0_172\jre\bin;F:\softWare\Tomcat\apache-tomcat-8.5.31\lib;F:\softWare\Tomcat\apache-tomcat-8.5.31\bin;F:\softWare\Maven\apache-maven-3.5.3\bin;C:\Users\Dream\AppData\Local\Microsoft\WindowsApps;;F:\pythonprojectlocation\Scripts
 

# exit() 退出当前程序
#  格式:exit()
#  返回值:无

值部分

  • os.curdir: curretn dir,当前目录
  • os.pardir: parent dir, 父亲目录
  • os.sep: 当前系统的路径分隔符
    • windows: "\"
    • linux: "/"
  • os.linesep: 当前系统的换行符号
    • windows: "\r\n"
    • unix,linux,macos: "\n"
  • os.name: 当前系统名称
    • windows: nt
    • mac,unix,linux: posix
# linux操作系统的名称是posix
print(os.name)

posix

 os.path 模块, 跟路径相关的模块

 

import os.path as op
# abspath() 将路径转化为绝对路径
# abselute 绝对
#  格式:os.path.abspath('路径')
#  返回值:路径的绝对路径形式

# linux中
# . 点号,代表当前目录
# .. 双点,代表父目录
absp = op.abspath(".")
print(absp)

 F:\pythonprojectlocation\com

 

# basename() 获取路径中的文件名部分
#  格式:os.path.basename(路径)
#  返回值:文件名字符串

bn = op.basename("F:\pythonprojectlocation\com")
print(bn)

com

 

# split() 将路径切割为文件夹部分和当前文件部分
#  格式:os.path.split(路径)
#  返回值:路径和文件名组成的元组
d,p = op.split("F:\pythonprojectlocation\Scripts\python1.exe")
print(d,"-"*20, p)

F:\pythonprojectlocation\Scripts -------------------- python1.exe

 

# isdir() 检测是否是目录
#  格式:os.path.isdir(路径)
#  返回值:布尔值

rst = op.isdir("F:\pythonprojectlocation\com")
rst

True

 

# exists() 检测文件或者目录是否存在
#  格式:os.path.exists(路径)
#  返回值:布尔值

e = op.exists("F:\pythonprojectlocation\com")
e

True