Python学习:os 模块和 pickle 模块

一、os模块

  1. os模块
函数名使用方法
getcwd()返回当前的目录
chdir()改变工作目录
listdir(path='.')列举指定目录中的文件名(’.‘表示当前目录,’. .'表示上一级目录)
mkdir(path)创建单层目录,如果目录存在抛出异常
makedirs(path)递归创建多层目录,如果目录已存在则抛出异常
remove(path)删除文件
rmdir()删除单层目录,如果该目录非空则抛出异常
removedirs(path)递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空则抛出异常
rename(old,new)将文件old重命名为new
system(command)运行系统的shell命令
import os 
os.getcwd()	#获取应用程序的工作目录
os.listdir()	#获取当期目录下有哪些文件和子目录
os.mkdir('test')	#用于创建文件夹,如果该文件夹存在就抛出FileExistsError异常
os.makedirs(r".\test1\b\c")	#用于创建多层目录
os.listdir()	#返回结果:['.idea', 'Spider', 'test', 'test.txt', 'test1', 'venv']
os.remove('test.txt')	#用于删除指定的文件
os.rmdir('test')	#用于删除目录
os.removedirs(r"test1\b\c")	#用于删除多层目录
os.renames('a','b')	#修改文件‘a’的名字为‘b’

walk(top)函数遍历top参数下的所有子目录,并将结果返回一个三元组

(路径,[包含目录],[包含文件])
for i in os.walk('a'):
    print(i)
#返回结果:
('a', ['b'], [])
('a\\b', ['c'], [])
('a\\b\\c', [], [])

表示:a 文件包含 b 文件,b 文件包含 c 文件

  1. os.path模块
os.path.dirname(r'a\b\c\test.txt')	#获取路径名:'a\\b\\c'
os.path.basename(r'a\b\c\test.txt')	#获取文件名'test.txt'
#将路径名和文件名组合成一个完整的路径'C:\\Python34\\Test\\test.txt'
os.path.join(r"C:\Python34\Test","test.txt")	
os.path.split(r"C:\Python34\Test\test.txt")	#分割路径和文件名('C:\\Python34\\Test', 'test.txt')
os.path.splitext(r"C:\Python34\Test\test.txt")	#分割文件名和扩展名('C:\\Python34\\Test\\test', '.txt')
# 获取文件的尺寸,返回值以字节为单位,0
os.path.getsize(r".\a\b\c\test.txt")	

二、pickle模块:可以保存任何Python对象

从一个文件里读取字符串非常简单,但如果想要取出数值,就有点困难。因为 read()readline() 方法,都是返回一个字符串,如果从字符串提取数值,可以使用 int()float() 将字符串强制转换为具体的数值。

保存文本很简单,但是当要保存的数据像列表、字典甚至是类的实例这些复杂的数据类型时,普通的文件操作就行不通。如果将这些都转换为字符串,再写入文本文件,但是将这个过程反过来,则会异常麻烦
此时可以利用 pickle 这个模块,这个模块可以将 Python对象都转化为二进制的形式存放,这个过程称为 pickling,从二进制转换回对象的过程称为 unpickling

  1. 将列表永久保存,此时打开的文件一定要使用二进制的形式打开
import pickle

test_list = [1,'a','test']
with open('test.pkl','wb') as pickle_file:
    pickle.dump(test_list,pickle_file)

打开保存的 test.pkl 文件,发现乱码(保存的二进制形式)
在这里插入图片描述
2. 使用时只需要二进制模式先把文件打开,然后用 load 把数据加载进来

import pickle
with open('test.pkl','rb') as pickle_file:
    test_list = pickle.load(pickle_file)
    print(test_list)

运行结果:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南淮北安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值