python 文件目录的操作

185 篇文章 0 订阅
156 篇文章 5 订阅

1,目录管理 os

os 模块提供了非常丰富的方法用来处理文件和目录,常用的方法如下表所示:

  1. os.system('cls') 清空屏幕
  2. os.system('calc') 弹出计算器程序
  3. os.name 查看当前操作系统,返回nt:表示windows;posix:表示类unix
  4. print(os.environ['path']) 获取系统环境变量
  5. os.getcwd() 获取当前工作目录
  6. os.mkdir('hello') 创建目录(不能带中间目录)只能创建一级目录
  7. os.makedirs('a/b/c') 创建目录(会自动创建中间目录)
  8. os.rmdir('hello') 删除目录(只能删除空目录)
  9. os.rename(原名称, 新名称) 重命名(可以是文件或目录)
  10. os.stat(文件名) 查看文件信息(也可以是目录)
  11. os.listdir(目录) 查看目录的直接子文件

2,相对目录/绝对目录

相对目录:有参考的目录

. 表示当前目录,通常‘./’可以省略

.. 表示上一级目录,上上一级目录这样表示:../../

绝对目录:windows中以盘符开头,类unix中以'/'开头的目录

(UNIX操作系统(尤尼斯),是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统)

目录分隔符:

windows:/ 或 \

类unix:/

建议:统一使用 /

说明:在文件操作时,相对目录和绝对目录都可以

3,path 路径

from os import path

 

# 目录拼接

# print(path.join('abc/def', 'hello.py'))

 

# 提取目录

# print(path.dirname('abc/def/hello.py'))

 

# 提取文件名

# print(path.basename('abc/def/hello.py'))

 

# 切割目录与文件名

# print(path.split('abc/def/hello.py'))

# dir, name = path.split('abc/def/hello.py')

# print(dir, name)

 

# 切割文件名与后缀

# name, ext = path.splitext('hello.py')

# print(name, ext)

 

# 判断文件是否存在(也可以判断目录)

# print(path.exists('hello.py'))

# print(path.exists('aa'))

 

# 判断是否是目录文件

# print(path.isdir('hello.py'))

# print(path.isdir('aa'))

 

# 判断是否是普通文件

# print(path.isfile('hello.py'))

# print(path.isfile('aa'))

 

# 获取文件大小,仅限于普通文件

print(path.getsize('01-os.py'))

# 不可以是目录(大小始终为0)

print(path.getsize('aa'))

4,文件操作

  • 打开文件(open) fp = open('00-test.txt', 'r')
  • 参数:

参数(file):操作的文件名

参数(mode):打开方式

参数(encoding):指定编码方式,通常不用指定,系统会自动识别

  • 打开方式:

r:只读方式,文件不存在会报错

w:只写方式,文件不存在会创建,文件存在删除后再创建

a:追加方式,文件不存在会创建,文件存在直接打开(不会清空),只能向最后追加内容

r+:在r方式上添加写的功能

w+:在w方式上添加读的功能

a+:在a方式上添加读的功能

 

在上面模式上添加一个字符b,表示二进制方式打开:rb、wb、ab、rb+、wb+、ab+

说明:没有b的方式文件读写都是str类型,带b的方式文件读写都是bytes

  • 编码方式:

ASCII:美国信息交换标准代码

ansi:扩展的ASCII

gb2312:中国的ansi

gbk:扩充的gb2312

unicode:万国码,将全部国家的字符全部包含进去进行统一编码

utf-8:可变长度的unicode实现方案,而且对中文支持友好

  • bytes字节类型:

s = b'hello'

print(s)

print(type(s))

  • 文件读写

# 判断是否可读

# print(fp.readable())

# 读取指定长度内容

# ret = fp.read(3)

 

# 一次读取一行

# print(fp.readline())

 

# 读取所有内容,返回一个列表,一行一个元素

# lines = fp.readlines()

 

# 判断是否能够进行写操作

# print(fp.writable())

# fp.write('world')

# fp.write(b'gogogo')

  • 文件指针

# 获取文件指针的位置

print(fp.tell())

 

# 设置指针偏移

# 参数1:偏移量

# 参数2:参考位置,0表示开头,1表示当前,2表示末尾

# 带b的方式打开,设置偏移没有问题

# 不带b的方式打开,设置偏移会报错

fp.seek(-5, 1)

  • 文件删除

os.remove(文件名)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值