文件系统,os模块中关于文件

目录:

python基础:os模块中有关文件/目录常用的函数使用格局,

Python是跨平台的言语,相当于说一样的源代码在不相同的操作系统不要求修改就能够同样落成由此Python的撰稿人就倒腾了OS模块这么一个玩具出来,有了OS模块,我们不须求关爱怎么着操作系统下选择什么模块,OS模块会帮你挑选正确的模块并调用

 
os模块中关于文件/目录常用的函数使用格局**os.path模块中有关路线常用的函数使用方式**

函数名

利用办法

getcwd()

再次回到当前工作目录

chdir(path)

变动事业目录

listdir(path=’.’)

历数钦点目录中的文件名(’.’表示当前目录,’..’代表上顶尖目录)

mkdir(path)

开创单层目录,如该目录已存在抛出卓殊

makedirs(path)

递归创建多层目录,如该目录已存在抛出非常,注意:’E:\\a\\b’和’E:\\a\\c’并不会争执

remove(path)

除去文件

rmdir(path)

剔除单层目录,如该目录非空则抛出非凡

removedirs(path)

递归删除目录,从子目录到父目录逐层尝试删除,境遇目录非空则抛出尤其

rename(old, new)

将文件old重命名字为new

system(command)

运作系统的shell命令

walk(top)

遍历top路径以下有所的子目录,再次来到二个雅士利组:(路线, [包涵目录],
[含有文件])【具体贯彻方案请看:第贰0讲课后作业^_^】

以下是帮衬路线操作中常用到的片段定义,帮助具有平台

os.curdir

代替当前目录(’.’)

os.pardir

文件系统,os模块中关于文件。代替他上拔尖目录(’..’)

os.sep

出口操作系统特定的渠道分隔符(Win下为’\\’,Linux下为’/’)

os.linesep

此时此刻平台应用的行终止符(Win下为’\r\n’,Linux下为’\n’)

os.name

替代当前使用的操作系统(包涵:’posix’,  ‘nt’, ‘mac’, ‘os二’, ‘ce’,
‘java’)

函数名

行使方法

basename(path)

去掉目录路线,单独再次来到文件名

dirname(path)

去掉文件名,单独再次来到目录路线

join(path1[, path2[, …]])

将path壹, path二各部分组合成二个渠道名

split(path)

分开文件名与门路,重返(f_path,
f_name)元组。假如完全使用目录,它也会将最终二个索引作为文件名分别,且不会咬定文件也许目录是不是存在

splitext(path)

暌违文件名与恢弘名,再次来到(f_name, f_extension)元组

getsize(file)

归来钦定文件的尺码,单位是字节

getatime(file)

回到钦点文件近来的访问时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)

getctime(file)

回到内定文件的创建时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)

getmtime(file)

回去钦命文件最新的修改时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)

以下为函数重返 True 或 False

exists(path)

推断钦命路径(目录或文件)是还是不是存在

isabs(path)

判定钦点路线是或不是为相对路径

isdir(path)

认清钦定路径是或不是留存且是多少个索引

isfile(path)

剖断钦赐路径是还是不是存在且是二个文书

islink(path)

判别钦定路径是不是存在且是多个标志链接

ismount(path)

看清钦赐路径是还是不是留存且是3个挂载点

samefile(path1, paht2)

决断path1和path二四个路子是还是不是针对同二个文书

 

Python是跨平台的言语,也便是说同样的源代码在差异的操作系统不供给修改就足以…

Python是跨平台的语言,约等于说相同的源代码在不一致的操作系统不须要修改就足以壹如既往落成由此Python的笔者就倒腾了OS模块这么三个玩具出来,有了OS模块,大家不供给关注如何操作系统下利用什么模块,OS模块会帮你挑选正确的模块并调用

os模块中关于文件/目录常用的函数使用方法

  一、os模块中关于文件/目录常用的函数使用办法

 

函数名

  二、os.path模块中有关路线常用的函数使用办法

os模块中关于文件/目录常用的函数使用办法**os.path模块中有关路线常用的函数使用办法**

行使格局

  3、课时30课后习题及答案

函数名

getcwd()

 

应用方法

归来当前工作目录

接下去会介绍跟Python的文书有关的壹对很有用的模块。模块是怎么着?其实大家写的每1个源代码文件(*.py)都以3个模块。Python自个儿带有尤其多使用的模块。

getcwd()

chdir(path)

譬如说刚初阶介绍的文字小游戏,里边就用random模块的randint()函数来生成随机数。但是要利用那么些randint()函数,直接就调用可这几个:

回到当前工作目录

改造工作目录

>>> random.randint(0,9)

Traceback (most recent call last):
  File "<pyshell#36>", line 1, in <module>
    random.randint(0,9)
NameError: name 'random' is not defined

chdir(path)

listdir(path=’.’)

科学的做法是先利用import语句导入模块,然后再使用:

更改工作目录

列举钦赐目录中的文件名(’.’表示当前目录,’..’代表上一流目录)

>>> import random

>>> random.randint(0,9)

3
>>> random.randint(0,9)

0
>>> random.randint(0,9)

7

listdir(path=’.’)

mkdir(path)

 

列举内定目录中的文件名(’.’表示当前目录,’..’代表上一级目录)

创制单层目录,如该目录已存在抛出十分

*******************************************************

mkdir(path)

makedirs(path)

壹、os模块中有关文件/目录常用的函数使用办法

创立单层目录,如该目录已存在抛出非常

递归创制多层目录,如该目录已存在抛出非常,注意:’E:\\a\\b’和’E:\\a\\c’并不会争论

*******************************************************

makedirs(path)

remove(path)

率先要介绍的是了不起上的OS模块,OS即Operating
System的缩写,意思是操作系统。之所以说OS模块高大上,是因为对此文件系统的访问,Python一般是通过OS模块来兑现的。

递归创设多层目录,如该目录已存在抛出非凡,注意:’E:\\a\\b’和’E:\\a\\c’并不会争执

删去文件

Python是跨平台的语言,也正是说,同样的源代码在差异的操作系统不要求修改就能够一如既往完结。有了OS模块,不要求关怀怎么着操作系统下采Nash么模块,OS模块会帮你挑选正确的模块并调用。

remove(path)

rmdir(path)

下表列举了os模块中关于文件/目录常用的函数使用办法:

除去文件

删除单层目录,如该目录非空则抛出特别

函数名                 使用方法
getcwd()             返回当前工作目录
chdir(path)           改变工作目录
listdir(path='.')       列举指定目录中的文件名('.'表示当前目录,'..'表示上一级目录)
mkdir(path)           创建单层目录,如该目录已存在抛出异常
makedirs(path)         递归创建多层目录,如该目录已存在抛出异常,注意:'E:\\a\\b'和'E:\\a\\c'并不会冲突
remove(path)          删除文件
rmdir(path)           删除单层目录,如该目录非空则抛出异常
removedirs(path)        递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空则抛出异常
rename(old, new)        将文件old重命名为new
system(command)        运行系统的shell命令
walk(top)            遍历top路径以下所有的子目录,返回一个三元组:(路径, [包含目录], [包含文件])【具体实现方案请看:第30讲课后作业^_^】

以下是支持路径操作中常用到的一些定义,支持所有平台    
os.curdir            指代当前目录('.')
os.pardir            指代上一级目录('..')
os.sep               输出操作系统特定的路径分隔符(Win下为'\\',Linux下为'/')
os.linesep           当前平台使用的行终止符(Win下为'\r\n',Linux下为'\n')
os.name             指代当前使用的操作系统(包括:'posix',  'nt', 'mac', 'os2', 'ce', 'java')

rmdir(path)

removedirs(path)

 

除去单层目录,如该目录非空则抛出至极

递归删除目录,从子目录到父目录逐层尝试删除,遭逢目录非空则抛出分外

1、getcwd()

removedirs(path)

rename(old, new)

在多少意况下,大家必要获得应用程序当前的劳作目录(比如要保留权且文件),那么能够行使getcwd()函数得到:

澳门葡京备用网址 ,递归删除目录,从子目录到父目录逐层尝试删除,蒙受目录非空则抛出特别

将文件old重命名叫new

>>> import os

>>> os.getcwd()

'C:\\Users\\14158\\AppData\\Local\\Programs\\Python\\Python37'

rename(old, new)

system(command)

 

将文件old重命名称叫new

运维种类的shell命令

2、chdir(path)

system(command)

walk(top)

用chdir()函数能够改动当前工作目录,比如能够切换成D盘:

运作系统的shell命令

遍历top路线以下有所的子目录,重返一个三元组:(路线, [带有目录],
[含有文件])【具体落到实处方案请看:第一0讲课后作业^_^】

>>> os.chdir("D:\\")

>>> os.getcwd()

'D:\\'

walk(top)

以下是支撑路线操作中常用到的部分定义,扶助全部平台

 

遍历top路线以下有所的子目录,再次回到三个安慕希组:(路线,
[富含目录],
[涵盖文件])【具体落到实处方案请看:第拾讲课后作业^_^】

os.curdir

3、listdir(path=’.’)

以下是永葆路线操作中常用到的1部分概念,扶助全数平台

取代他当前目录(’.’)

有时你也许需求知道当前目录下有哪些文件和子目录,那么listdir()函数能够帮您罗列出来。path参数用于钦点列举的目录,暗中认可值是’.’,代表根目录,也得以采用’..’代表上壹层目录:

os.curdir

os.pardir

 

代替当前目录(’.’)

替代它上顶尖目录(’..’)

>>> os.chdir("C:\\")

>>> os.listdir()

['$Recycle.Bin', 'aow_drv.log', 'AppData', 'Documents and Settings', 'hiberfil.sys', 'Intel', 'OneDriveTemp', 'pagefile.sys', 'pbb.txt', 'PerfLogs', 'Program Files', 'Program Files (x86)', 'ProgramData', 'Recovery', 'swapfile.sys', 'System Volume Information', 'Users', 'Windows']
>>> os.listdir("D:\\")

['$RECYCLE.BIN', 'bigdata', 'Hlddz', 'InstallConfig.ini', 'JAVA', 'QQ图片20180728154834.jpg', 'QQ图片20180728155014.jpg', 'qycache', 'rhel-server-7.4-x86_64-dvd.iso', 'System Volume Information', 'ubuntu-18.04-live-server-amd64.iso', '大二上', '安装包', '小甲鱼', '应用程序', '桌面壁纸']

os.pardir

os.sep

 

代表上一流目录(’..’)

输出操作系统特定的路子分隔符(Win下为’\\’,Linux下为’/’)

4、mkdir(path)

os.sep

os.linesep

mkdir()函数用于创制文件夹,纵然该文件夹存在,则抛出FileExistsError至极:

输出操作系统特定的不2秘籍分隔符(Win下为’\\’,Linux下为’/’)

此时此刻平台利用的行终止符(Win下为’\r\n’,Linux下为’\n’)

>>> os.mkdir("test")

>>> os.listdir()

['$Recycle.Bin', 'aow_drv.log', 'AppData', 'Documents and Settings', 'hiberfil.sys', 'Intel', 'OneDriveTemp', 'pagefile.sys', 'pbb.txt', 'PerfLogs', 'Program Files', 'Program Files (x86)', 'ProgramData', 'Recovery', 'swapfile.sys', 'System Volume Information', 'test', 'Users', 'Windows']
>>> os.mkdir("test")

Traceback (most recent call last):
  File "<pyshell#57>", line 1, in <module>
    os.mkdir("test")
FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: 'test'

os.linesep

os.name

 

近日平台应用的行终止符(Win下为’\r\n’,Linux下为’\n’)

代替当前应用的操作系统(包蕴:’posix’,  ‘nt’, ‘mac’, ‘os2’, ‘ce’,
‘java’)

5、makedirs(path)

os.name

os.path模块中关于路线常用的函数使用方式

makedirs()函数能够用来创制多层目录:

代替当前使用的操作系统(包蕴:’posix’,  ‘nt’,
‘mac’, ‘os二’, ‘ce’, ‘java’)

函数名

>>> os.makedirs(r".\a\b\c")

函数名

选拔办法

功能如图所示:

动用办法

basename(path)

澳门葡京备用网址 1

basename(path)

去掉目录路线,单独重返文件名

 

去掉目录路线,单独再次回到文件名

dirname(path)

6、remove(path)、rmdir(path)
和removedirs(path)  

dirname(path)

去掉文件名,单独再次回到目录路线

remove()函数用于删除钦命的文件,注意是删除文件,不是删除目录。假使要刨除目录,则用rmdir()函数;假诺要去除多层目录,则用removedirs()函数。

去掉文件名,单独重临目录路线

join(path1[, path2[, …]])

>>> os.listdir()                              
['$Recycle.Bin', 'a', 'aow_drv.log', 'AppData', 'b', 'Documents and Settings', 'hiberfil.sys', 'Intel', 'OneDriveTemp', 'pagefile.sys', 'pbb.txt', 'PerfLogs', 'Program Files', 'Program Files (x86)', 'ProgramData', 'Recovery', 'swapfile.sys', 'System Volume Information', 'test', 'Users', 'Windows']
>>> os.remove("test")                             
>>> os.rmdir("b")
>>> os.removedirs(r".\a\b\c")

join(path1[, path2[,
…]])

将path一, path二各部分组合成一个路线名

注:在C盘有望会报错,未有权限。

将path1,
path二各部分组合成1个渠道名

split(path)

 

split(path)

分割文件名与渠道,再次回到(f_path,
f_name)元组。如若完全使用目录,它也会将最后叁个目录作为文件名分别,且不会咬定文件也许目录是还是不是存在

7、rename(old,new)

分开文件名与路径,重临(f_path,
f_name)元组。假如完全选拔目录,它也会将最终三个索引作为文件名分别,且不会判断文件恐怕目录是不是存在

splitext(path)

rename()函数用于重命名文件或文件夹:

splitext(path)

分开文件名与扩张名,重临(f_name, f_extension)元组

>>> os.listdir()
['a','a.txt']                              
>>> os.rename("a","b")
>>> os.rename("a.txt","b.txt")                           
>>> os.listdir()
['b','b.txt']  

分离文件名与增添名,再次回到(f_name,
f_extension)元组

getsize(file)

 

getsize(file)

归来钦命文件的尺寸,单位是字节

8、systemf(command)

再次回到钦定文件的尺码,单位是字节

getatime(file)

差不多每一种操作系统都会提供1些小工具,system()函数正是用来选取那几个小工具:

getatime(file)

回到钦点文件近日的访问时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)

>>> os.system("calc")#calc是windows自带的计算器

回来钦命文件近日的造访时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)

getctime(file)

回车后即弹出总结器。

getctime(file)

回到钦点文件的创始时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)

 

回到钦命文件的创造时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)

getmtime(file)

9、walk(top)

getmtime(file)

回去钦赐文件最新的修改时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)

终极是walk()函数,这一个函数在稍微时候实在万分有用,能够省去你多多麻烦。该函数的成效是遍历top参数钦赐路径下的全体子目录,并将结果回到多个长富组(路线,[富含目录],[涵盖文件])。

回到钦点文件最新的修改时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)

以下为函数再次来到 True 或 False

>>> for i in os.walk("test"):
         print(i)    

以下为函数重临 True 或 False

exists(path)

 

exists(path)

认清钦定路径(目录或文件)是不是留存

除此以外path模块还提供了有的很实用的定义,分别是:os.curdir代表当前目录;os.pardir表示上一流目录(’..’);os.sep表示路线的分隔符,比如Windows系统下为‘\\’,linux下为‘\’;os.linesep代表近来平台应用的行终止符(在Windows下为‘\r\n’,Linux下为‘\n’);os.name代表如今应用的操作系统。

判别钦点路径(目录或文件)是不是存在

isabs(path)

 

isabs(path)

看清钦赐路径是不是为相对路线

*******************************************************

剖断钦赐路径是不是为相对路线

isdir(path)

二、os.path模块中关于路线常用的函数使用办法

isdir(path)

看清钦命路径是还是不是留存且是一个目录

*******************************************************

认清内定路径是还是不是存在且是3个索引

isfile(path)

 另三个有力的板块是os.pash,它能够形成都部队分对准路线名的操作。下表列举了os.pash中常用到的函数使用方法。

isfile(path)

认清钦点路径是不是存在且是多少个文件

函数名                          使用方法
basename(path)                    去掉目录路径,单独返回文件名
dirname(path)                     去掉文件名,单独返回目录路径
join(path1[, path2[, ...]])            将path1, path2各部分组合成一个路径名
split(path)                      分割文件名与路径,返回(f_path, f_name)元组。如果完全使用目录,它也会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在
splitext(path)                    分离文件名与扩展名,返回(f_name, f_extension)元组
getsize(file)                     返回指定文件的尺寸,单位是字节
getatime(file)                    返回指定文件最近的访问时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
getctime(file)                    返回指定文件的创建时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
getmtime(file)                    返回指定文件最新的修改时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)

以下为函数返回 True 或 False    
exists(path)                      判断指定路径(目录或文件)是否存在
isabs(path)                       判断指定路径是否为绝对路径
isdir(path)                       判断指定路径是否存在且是一个目录
isfile(path)                      判断指定路径是否存在且是一个文件
islink(path)                      判断指定路径是否存在且是一个符号链接
ismount(path)                      判断指定路径是否存在且是一个挂载点
samefile(path1, paht2)                判断path1和path2两个路径是否指向同一个文件

剖断钦赐路径是否存在且是多少个文件

islink(path)

 

islink(path)

判别钦赐路径是还是不是留存且是三个符号链接

1、basename(pash)和dirname(path)

看清钦命路径是还是不是留存且是四个符号链接

ismount(path)

basename(pash)和dirname(path)函数分别用于获取文件名和门路名:

ismount(path)

推断钦命路径是还是不是存在且是2个挂载点

>>> os.path.dirname(r"a\b\test.txt")

'a\\b'
>>> os.path.basename(r"a\b\test.txt")

'test.txt'

剖断钦赐路径是或不是存在且是叁个挂载点

samefile(path1, paht2)

 

samefile(path1, paht2)

认清path一和path贰七个路子是不是对准同1个文本

2、join(path1[, path2[,
…]])

决断path一和path2两个路子是还是不是针对同三个文本

join()函数跟BIF的要命join()函数差异,os.path.join()用于将路线名和文书名组合成多少个全体的门路:

 

>>> os.path.join(r"C:\Python34\Test","FishC.txt")

'C:\\Python34\\Test\\FishC.txt'

 

3、split(path)和splitext(path)

split()和splitext()函数都用于私分路线,split()函数分割路线和文书名(假设完全使用目录,它也会将最后多个索引作为文件名分别,且不会判别文件大概目录是或不是存在);splitext()函数则是用以私分文件名和扩大名:

>>> os.path.split(r"a\b\test.txt")

('a\\b', 'test.txt')
>>> os.path.splitext(r"a\b\test.txt")

('a\\b\\test', '.txt')

 

4、getsize(file)

getsize()函数用于获取文件的尺码,重临值是以字节为单位:

>>> os.chdir("C:\\Users\\14158\\AppData\\Local\\Programs\\Python\\Python37")

>>> os.path.getsize("python.exe")

99992

 

5、getatime(file)、getctime(file)和getmtime(file)

getatime(file)、getctime(file)和getmtime(file)分别用于获取文件的目前走访时间、创立时间和修改时间。可是再次回到值是浮点型秒数,可用time模块的gmtime()或localtime()函数换算:

>>> import time

>>> temp = time.localtime(os.path.getatime("python.exe"))

>>> print("python.exe被访问的时间是:",time.strftime("%d%b%Y%H:%M:%S",temp))

python.exe被访问的时间是: 20Aug201817:46:49
>>> temp = time.localtime(os.path.getctime("python.exe"))

>>> print("python.exe被创建的时间是:",time.strftime("%d%b%Y%H:%M:%S",temp))

python.exe被创建的时间是: 27Jun201805:01:38
>>> temp = time.localtime(os.path.getmtime("python.exe"))

>>> print("python.exe被修改的时间是:",time.strftime("%d%b%Y%H:%M:%S",temp))

python.exe被修改的时间是: 27Jun201805:01:38

还有1些函数重临布尔类型的值,详细的情况见表。

 

*******************************

三、课时30课后习题及答案

*******************************

 澳门葡京备用网址 2

澳门葡京备用网址 3澳门葡京备用网址 4澳门葡京备用网址 5

澳门葡京备用网址 6

澳门葡京备用网址 7澳门葡京备用网址 8

澳门葡京备用网址 9澳门葡京备用网址 10澳门葡京备用网址 11

澳门葡京备用网址 12

澳门葡京备用网址 13

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website