周报2

标准库os与os.path示例-1
05P7.py】
>>> import os
>>> import os.path
>>> path='C:\\windows\\notepad.exe'
>>> print(os.path.basename('path'))#获取路径的最后组成部分
'notepad.exe'
>>> print(os.path.exists('data.txt') )
#测试文件是否存在
True
>>> #os.rename('sample.txt', 'text.txt') #文件不存在重命名失败
>>> os.rename('data.txt', 'D:\\sample.txt') #rename可实现文件移动
>>> print(os.path.exists('data.txt'))
False
>>> print(os.path.exists('D:\\sample.txt'))
True
>>> os.path.dirname(path)
#返回路径的文件夹名
'C:\\windows'
>>> os.path.split(path)
#切分文件路径和文件名
('C:\\windows', 'notepad.exe')
文件与文件夹7
标准库os与os.path示例-2
>>> os.path.splitdrive(path)
('C:', '\\windows\\notepad.exe')
>>> os.path.splitext(path)
#切分文件扩展名
('C:\\windows\\notepad', '.exe')
>>> print([fname for fname in os.listdir(os.getcwd()) if
os.path.isfile(fname) and fname.endswith('.py')])
['20190409_1文本文件读写.py', '20190409_2文本文件文件指
针.py', '20190409_3文件排序.py', '20190409_4增加行号.py',
'20190409_5排序.py', '20190409_6json序列化.py',
'20190409_7pickle序列化.py', '20190409_8shelve序列化.py',
'20190409_9OS操作.py', 'demo.py', 'demo_new.py']
>>> os.getcwd()
#返回当前工作目录
'D:\\2019春季学期\\2019春_Python程序设计\\课件PPT\\5 文件与
数据库操作'
>>> os.mkdir(os.getcwd()+'\\temp')
#创建目录
>>> os.listdir('.')
#列目录
['temp']
文件与文件夹8
标准库os与os.path示例-3
>>> os.chdir(os.getcwd()+'\\temp')
#改变当前工作目录
>>> os.getcwd()
''D:\\2019春季学期\\2019春_Python程序设计\\课件PPT\\5 文件与
数据库操作'\\temp'
>>> os.mkdir(os.getcwd()+'\\test')
>>> os.rmdir('test')
#删除目录
>>> os.listdir('.')
[]
>>> os.path.commonpath([r'C:\windows\notepad.exe',
r'C:\windows\system'])
'C:\\windows'
>>> os.path.commonpath([r'a\b\c\d', r'a\b\c\e'])
'a\\b\\c'
>>> os.path.commonprefix([r'a\b\c\d', r'a\b\c\e'])
'a\\b\\c\\'
文件与文件夹9
标准库shutil
方法
功能说明
copyfile(src, dst)
复制文件
copytree(src, dst)
递归复制文件夹
disk_usage(path)
查看磁盘使用情况
move(src, dst)
移动文件或递归移动文件夹
rmtree(path)
递归删除文件夹
make_archive(base_name, format,
root_dir=None, base_dir=None)
创建tar或zip格式的压缩文件
unpack_archive(filename,
extract_dir=None, format=None)
解压缩压缩文件
文件与文件夹1
0
1
0
标准库shutil示例-1
>>> import shutil
#导入shutil模块
>>> shutil.copyfile('D:\\2019春季学期\\2019春_Python程序设计\\
课件PPT\\5 文件与数据库操作\\data.txt', 'D:\\dir1.txt') #复制文件
l 下面的代码将特定文件压缩至D:\a.zip文件:
>>> shutil.make_archive('D:\\a', 'zip', 'D:\\2019春季学期\\2019春
_Python程序设计\\课件PPT\\5 文件与数据库操作', 'data.txt')
'D:\\a.zip'
l 下面的代码则将刚压缩得到的文件D:\a.zip解压缩至
D:\a_unpack文件夹:
>>> shutil.unpack_archive('D:\\a.zip', 'D:\\a_unpack')
l 下面的代码使用shutil模块的方法删除刚刚解压缩得
到的文件夹:
>>> shutil.rmtree('D:\\a_unpack')
文件与文件夹1
1
1
1
标准库shutil示例-2【
05P11.py】
l 标准库shutil的rmtree()函数使用onerror参数指定回调
函数来处理删除文件或文件夹失败的情况:
>>> import os
>>> import stat
>>> import shutil
>>> def remove_readonly(func, path, _): #定义回调函数
os.chmod(path, stat.S_IWRITE)
#删除文件的只读属性
func(path) #再次执行删除操作
>>> shutil.rmtree('D:\\des_test') #文件夹中有个只读文件
Traceback (most recent call last):
File "<pyshell#21>", line 1, in <module>
shutil.rmtree('D:\\des_test')
......
PermissionError: [WinError 5] 拒绝访问。: 'D:\\des_test\\test1.txt'
>>> shutil.rmtree('D:\\des_test', onerror=remove_readonly) #指定回
调函数,删除成功
文件与文件夹1
2
1
2
标准库zipfile与扩展库rarfile
l Python标准库zipfile提供了对zip和apk文件的访问
>>> import zipfile
>>> fp = zipfile.ZipFile(r'D:\temp.zip')
>>> for f in fp.namelist():
print(f) #如果中文显示乱码可以#重新编码再解码
>>> fp.close()
l Python扩展库rarfile(可通过pip工具进行安装)提供
了对rar文件的访问
>>> import rarfile
>>> r = rarfile.RarFile(r'D:\codeblocks_readme.rar')
>>> for f in r.namelist():
print(f)
>>> r.close()
文件与文件夹1
3
1
3
计算文件的CRC32值【
05P13.py】
import zlib
import os.path
filename='D:\\temp.zip'
if os.path.isfile(filename):
fp = open(filename, 'rb')
contents = fp.read()
fp.close()
print(zlib.crc32(contents))
else:
print('file not exists')

 

posted @ 2022-03-13 17:50  我的未来姓栗山  阅读(23)  评论(0编辑  收藏  举报