鱼C论坛

 找回密码
 立即注册
查看: 1721|回复: 0

[技术交流] 《零基础学习Python》30文件系统:介绍一个高大上的东西(os,os.path模块)

[复制链接]
发表于 2017-9-9 21:58:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 只为 于 2017-9-9 22:03 编辑

1、模块:可用代码块的打包
模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可用被别的程序引入,以使用该模块中的函数等功能。

2、OS:Operating System 操作系统
python提交os模块对文件系统进行访问,不用关心操作系统类型

3-1、os 模块中关于文件/目录常用的函数使用方法
(小甲鱼链接:http://bbs.fishc.com/forum.php?m ... peid%26typeid%3D403

import os
1)os.getcwd()
2)os.chdir(path)
3)os.listdir(path)
4)os.mkdir(path)
注:只能创建单层目录,父目录存在才能创建该父目录下的子目录,否则抛出异常;如果目录已存在,也会抛出异常
5)os.makedirs(path)
注:可递归创建多层目录的,只是最后的子目录不存在就可以创建成功;如果目录已存在就好抛出异常
6)os.rmdir(path)
注:只能删除没有子目录的目录,删除文件调用os.remove(path)
7)os.removedirs(path)
注:可递归彻底删除多层目录, 但是需要确保目录为空,否则遇到非空目录抛出异常

8)os.rename(old,new)
8)os.system(command):运行系统的shell命令
os.system('cmd'):打开命令窗口
os.system('calc'):打开计算器

3-2、支持路径操作中常用到的一些定义,支持所有平台,是属性,不是方法
1)os.curdir<===>'.'
  1. os.listdir(os.curdir)
复制代码
<===>
  1. os.listdir('.')
复制代码

2)os.pardir<===>'..'
3)os.sep
注:输出操作系统特定的路径分隔符(Win下为‘\\’,Linux下为‘/’)
4)os.linesep
注:当前平台使用的行终止符(Win下为'\r\n',Linux下为'\n')
5)os.name
注:指代当前使用的操作系统(包括:‘posix’,‘nt’,‘mac’,‘os2’,‘ce’,‘java’)
'posix'---->‘unix’,'nt'---->‘win’

4-1、os.path模块中关于路径常用的函数使用方法
注:os 跟 os.path 不是一个模块
1)os.path.basename(path)
注:去掉目录路径,单独返回文件名
2)os.path.dirname(path)
注:去掉文件名,单独返回目录路径
3)os.path.join(path1[,path2,...])
注:
  1. os.path.join('c:\\','A','B','C')---->c:\\A\\B\\C
复制代码

4)os.path.split(path)
  1. os.path.split('E:\\A\\B\\test.txt')---->('E:\\A\\B','test.txt')
复制代码

注:分割文件名与路径,方法(f_path,f_name)元组。
但是系统不会自动判断path是不是一个文件路径,如果不是文件路径,它会把最后一个目录作为文件名返回
5)os.piath.splitext(path)
注:分离文件名与扩展名,返回(f_name,f_extension)元组
6)getsize(file)
注:返回指定文件的尺寸,单位是字节
7.1)os.path.getctime(file):返回指定文件的最近创建时间(浮点型秒数)
7.2)os.path.getmtiem(file):返回指定文件的最新修改时间(浮点型秒数)
7.3)os.path.getatime(file):返回指定文件的最佳访问时间(浮点型秒数)
注:浮点型秒数,可用time模块的gmtime()或localtime()函数换算
  1. import time
  2. >>> time.gmtime(os.path.getctime('C:\\GOdoo\\111.txt'))
  3. time.struct_time(tm_year=2017, tm_mon=9, tm_mday=9, tm_hour=5, tm_min=36, tm_sec=32, tm_wday=5, tm_yday=252, tm_isdst=0)
  4. >>> time.localtime(os.path.getctime('C:\\GOdoo\\111.txt'))
  5. time.struct_time(tm_year=2017, tm_mon=9, tm_mday=9, tm_hour=13, tm_min=36, tm_sec=32, tm_wday=5, tm_yday=252, tm_isdst=0)
复制代码

Q:访问时间跟创建时间和修改时间有何不同?

4-2、根据查询结果函数返回True或False

1)exists(path)
2)isabs(path)
相对路径:.\\A\\B     ..\\test.txt
3)isdir(path):判断是否存在并且是一个目录
4)isfile(path):判断是否存在并且是一个文件
5)islink(path):判断是否存在并且是一个符号链接
注:windows下就是判断是否是一个快捷方式
6)ismount(path):判断是否存在并且是一个挂载点
  1. os.path.ismount('E:')---->True
  2. os.path.ismount('E:\\A')---->False
复制代码

注:磁盘是挂载点,磁盘中的文件不是挂载点
7)samefile(path1,path2)
注:快捷方式跟符号链接可能指向同一个文件的

Q:os, os.path 模块区别?

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 22:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表