python 文件管理网站_python 目录管理与文件管理

目录管理(os)

system:执行系统命令

# 执行系统命令

os.system('cls')

name:获取操作系统名称

# 操作系统名称,nt代表Windows, posix代表类unix

print(os.name)

environ

# 获取环境变量

env = os.environ

print(env['path'])

print(env.get('path'))

print(env.get('HELLO'))

getcwd:# 获取当前工作目录

print(os.getcwd())

mkdir:创建目录

# 创建目录,只能是单层目录

# os.mkdir('hello')

# 这里会失败

# os.mkdir('a/b/c')

makedirs:创建目录,会创建中间目录

# 会创建中间目录

# os.makedirs('a/b/c')

rmdir:删除目录,只能删除空目录

# 删除目录,只能删除空目录

# os.rmdir('hello')

# 当目录中有其他文件或目录时删除失败

# os.rmdir('a')

rename:修改文件名(可以是目录)

# 修改名字,可以是目录 (old, new)

# os.rename('a', 'c')

# 也可以修改文件名

# os.rename('test.py', '123.py')

stat:查看文件信息

# 查看文件信息

print(os.stat('123.py'))

listdir:列出直接子文件

# 列出直接子文件

print(os.listdir('c'))

相对目录、绝对目录相对目录:就是有参考的目录

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

.. 表示上一级目录

绝对目录:windows中以某个盘符开头,类unix系统中以'/'开头的目录  目录分隔符:  类unix:/  windows:/ 或 \  建议:统一使用 '/' 表示  说明:在文件操作时,使用相对目录和绝对目录都可以path

from os import path

# 拼接目录

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

# 提取文件后缀(切割文件名与后缀)

name, ext = path.splitext('789.py')

print(name, ext)

# 提取目录名(最后一个目录分隔符的前面内容)

print(path.dirname('123/456/789.py'))

# 提取文件名(包括后缀)

print(path.basename('123/456/789.py'))

# 切割文件名和目录

print(path.split('123/456/789.py'))

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

print(path.exists('123.py'))

# 判断是否是目录文件

print(path.isdir('c'))

# 判断是否是普通文件

print(path.isfile('123.py'))

# 获取普通文件大小

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

# 不可以获取目录大小,始终是0

print(path.getsize('c'))

练习:自己实现目录大小的统计,需要使用递归

文件管理

打开文件(open)

示例:

fp = open('00-test.txt', 'r')

参数:参数1:文件路径名

参数2:打开方式

参数3:编码格式,通常可以不指定,系统会自动识别处理

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

w:只写方式,文件不存在创建文件,文件存在清空内容

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

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

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

a+:在a方式下添加读的功能  在上面的模式上添加b,表示二进制方式打开:rb、wb、ab、rb+、wb+、ab+ 1.文件的读写数据全部是bytes类型,没有添加b的方式全部是str类型

编码方式:ascii:美国信息交换标准代码

ansi:扩展的ascii

gb2312:中国的ansi

gbk:扩展的gb2312

unicode:是一套理论,实现方式不限 utf-8:可变长度的unicode实现,对中文的支持比较友好关闭文件(close)

# 关闭文件

fp.close()

文件读写

# 读取指定长度内容

# ret = fp.read(3)

# 写入内容

fp.write('hello')

# 读取一行,包括换行符

# print(fp.readline())

# 读取所有行,返回一个列表

print(fp.readlines())

# 是否可读

print(fp.readable())

# 是否可写

print(fp.writable())

文件指针

# 返回文件指针的操作位置

print(fp.tell())

# 设置偏移

# 参数1:偏移量

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

# 定位到末尾

fp.seek(0, 2)

带b的方式seek没有异常;不带b的时候,相对于当前位置无法偏移,相对于末尾只能偏移0

文件删除

import os

os.remove('02-test.py')

练习:(递归)删除一个目录

练习

1.实现一个拷贝文件的功能,提醒:要考虑超大文件问题,如:依次读取1024字节,循环读取2.递归删除一个文件夹3.统计一个文件夹的大小4.拷贝一个文件夹5.移动一个文件夹6.目录整理

一个目录中有各种文件,也有文件夹将所有的文件夹统一放到dir目录下将没有后缀的文件统一放到others目录下将有后缀的文件放到后缀名大写的文件夹下# 处理前

test/

dir1/

dir2/

1.py

2.py    3.txt    4.pdf    123    456  # 处理后 test/    DIR/        dir1/        dir2/    PY/        1.py        2.py    TXT/        3.txt    PDF/        4.pdf    OTHERS/        123        456

友情提醒:中间使用的所有文件目录的判断都需要进行拼接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值