2021-10-15 python从入门到精通--第十三章 文件及目录操作

文件及目录操作

基本操作

创建和打开文件

file = open(filename[, mode[, buffering]])
  • mode:r, rb, r+, rb+, w, wb, w+, wb+, a, ab, a+, ab+
  • buffering:指定缓冲模式,0为不缓存,1表示缓存,大于1表示缓冲区大小。默认是缓存模式

关闭文件

file.close()

打开文件时使用with语句

with语句执行完毕后会关闭文件

with expression as target:
	with-body

例:

with open("message.txt",'w') as file:
	pass

写入文件内容

file.write(string)

前提是保证打开模式是’w’或’a’,否则会报异常

读取文件内容

file.read([size])			#从文件头开始读取
file.seek(offset[, whence])	#指定位置开始读取
#offset的值是按一个汉字占两个字符,英文和数组占一个字符计算,与read计算方式不同
file.readline()			#读取一行
file.readlines()			#读取全部行,以列表的形式存在,列表中每个元素是一行内容

目录操作

os和os.path模块

>>> import os
>>> os.name
'nt'		# nt为windows系统,posix为linux、UNIX、MacOS系统
>>> os.linesep
'\r\n'		#获取系统的换行符
>>> os.sep
'\\'		#获取系统的路径分隔符

os:

  • getcwd():返回当前的工作目录
  • listdir(path):返回指定路径下的文件和目录信息
  • mkdir(path [, mode]):创建目录
  • makeedirs(path1/path2…[, mode]):创建多级目录
  • rmdir(path):删除目录
  • removedirs(path1/path2…):删除多级目录
  • chdir(path):把path设置为当前工作目录
  • walk(top[, topdown[, onerror]]):遍历目录树,返回元组,包括所有路径名,目录列表和文件列表三个元素

os.path:

  • abspath(path):获取文件或目录的绝对路径
  • exists(path):判断目录或文件是否存在,存在返回True
  • join(path, name):将目录与文件名拼接起来
  • splitext():分离文件名和扩展名
  • basename(path):从目录中提取文件名
  • dirname(path):从路径中提取文件路径,不包括文件名
  • isdir(path):判断是否为有效路径

路径

os.getcwd()		#返回相对路径
os.path.abspath(path)		#返回该path的绝对路径
os.path.join("E:\program","demo\message.txt")		#拼接到一起

判断目录是否存在

os.path.exists(path)		#判断目录或文件是否存在

创建目录

os.mkdir(path)		#创建一级目录
os.makedirs(path)		#创建多级目录

删除目录

os.rmdir(path)		#删除空目录
import shutil
shutil.rmtree(path)	#删除目录下的子目录及内容

遍历目录

 os.walk(top[, topdown][, onerror][, followlinks])

top:要遍历的根目录
topdown:遍历顺序,为True则自上而下(即先遍历根目录)
onerror:错误处理方式,默认为忽略
followlinks:为True则遍历由符号链接指向的目录
返回值:三个元素(dirpath, dirnames, filenames)的元组生成器,dirpath为当前遍历的路径,是一个字符串;dirnames为当前路径下包含的子目录,是一个列表;filenames为当前路径下包含的文件,是一个列表

高级文件操作

access(path, accesmode)
chmod(path, mode)
remove(path)
rename(src, dst)
stat(path)
startfile(path[, operation])

删除文件

os.remove(path)

重命名文件和目录

os.rename(src, dst)		#只能修改最后一级目录名,否则会抛异常

获取文件基本信息

os.stat(path)

返回值:

  • st_mode:保护模式
  • st_dev:设备名
  • st_ino:索引号
  • st_uid:用户ID
  • st_nlink:硬链接号
  • st_gid:组ID
  • st_size:文件大小(单位byte)
  • st_atime:最后一次访问时间
  • st_mtime:最后一次修改时间
  • st_ctime:最后一次状态变化时间(windows系统是返回文件创建时间)
    例:
>>> import os
>>> fileinfo = os.stat("E:\\avc.txt")
>>> fileinfo.st_atime
1634276618.4410193
>>> fileinfo.st_mtime
1626666185.4531255
>>> fileinfo.st_ctime
1626666185.4062488
>>>

获取的时间需要进行格式化:

>>> def formatTime(longtime):
...     '''格式化时间'''
...     import time
...     return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(longtime))
...
>>> formatTime(fileinfo.st_ctime)
'2021-07-19 11:43:05'
>>>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值