os模块:与系统操作的模块
1、获取当前工作路径, getcwd()
import os
print(os.getcwd())
>>> E:\python\python程序\test1\test2
2、 建一个文件夹,mkdir('文件名'),和当前文件同级
import os
print(os.mkdir('jiaoshi'))
>>> None
3、建多级文件夹,可生成多层递归目录,makedirs('路径')
import os
print(os.makedirs('jiaoshi/kk'))
>>> None
4、 找文件的绝对路径,path.abspath('文件名')
import os
print(os.path.abspath('jiaoshi'))
>>> E:\python\python程序\test1\test2\jiaoshi
5、找文件的上一层目录,path.dirname('路径'),貌似没什么卵子用
import os
print(os.path.dirname('jiaoshi/kk'))
>>> jiaoshi
6、显示文件夹下的内容,会显示文件和文本,在一个列表中。listdir('路径')
import os
print(os.listdir(r'jiaoshi'))
>>> ['kk']
7、 显示一个文件或文件夹的状态包括创建时间,修改时间。。。stat('路径')
import os
print(os.stat('jiaoshi'))
>>> os.stat_result(st_mode=16895, st_ino=77405618595434230, st_dev=1586569649, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1536306538, st_mtime=1536306538, st_ctime=1536306251)
8、判断路径是否存在,返回bool值。path.exists('路径')
import os
print(os.path.exists('jiaoshi'))
>>> True
9、将path分割成为上一级目录和文件名的二元组。path.split('路径')
import os
print(os.path.split('jiaoshi/kk'))
# 上一级目录,文件名
>>> ('jiaoshi','kk')
另外path.splitext(‘l路径’): 将文件名和扩展名分开
import os
filepath = input('请输入路径')
# os.path.splitext()将文件名和扩展名分开
filename, file_ext = os.path.splitext(filepath)
print(filename)
print(file_ext)
>>>E:\python\python程序\a
>>>.txt
10、取出路径的文件名。path.basename('路径')
import os
print(os.path.basename('jiaoshi/kk'))
>>> kk
11、获取文件(文件夹无效)最后修改时间,path.getmtime('路径')
import os
print(os.path.getmtime('tests1'))
>>> 1535439466.2732341
12、文件的重命名,rename('old_name','new_name')
import os
print(os.rename('jiaoshi/kk','jiaoshi/aa'))
>>> None
13、当前平台的名称(windows-->nt),name
import os
print(os.name)
>>> nt
14、分割操作系统路径分隔符,sep
import os
print(os.sep)
>>> \
15、拼接路径 第一个绝对路径之前的参数将被忽略. path.join(绝对路径,相对路径)
import os
print(os.path.join(r'E:\python\python程序\test1\test2','jiaoshi\kk'))
>>> E:\python\python程序\test1\test2\jiaoshi\kk
16、改变当前工作目录(类似cd)。chdirs('文件夹名')
import os
print(os.getcwd())
os.chdir('jiaoshi')
print(os.getcwd())
>>> E:\python\python程序\test1\test2
>>> E:\python\python程序\test1\test2\jiaoshi
17、删除一个文件,不为空就无法删除。remove('路径')
import os
os.remove('jiaoshi/kk')
18、删除多层目录,若不为空则不删除。removedirs(dirname1/dirname2)
import os
os.removedirs('jiaoshi/aa')
19、输出行终止符(Linux为'\n', windows '\r','\n') 。 linesep
import os
print(os.linesep)
20、运行shell直接显示, system('命令')
import os
print(os.system('help'))
configparser 模块: 配置文件解析模块
类似于一个字典
生成一个配置文件等操作
import configparser
config = configparser.ConfigParser()
# config.add_sections('块名')--->增加一个块
config.add_section('first')
config.add_section('second')
# config.set('块名', key,value)---->修改一个块,添加值
# 二级嵌套只能赋值字符串,不能是数字,若与一级相同则改写
config.set('first', 'name', '111')
config.set('second', 'name', '222')
# 删除一个块
config.remove_section('second')
# 删除一个块下面的对应的值
config.remove_option('first', 'name')
# 写入到一个文件内
# 调用config的写方法,把句柄写进去,和普通写文件的方式不同(通过句柄去写)
with open('test.ini', 'w') as f:
config.write(f)
也可以通过字典的形式修改:
config['key_name'] = values # 按照字典的方式来存变量值
config['key_name']['next_key_name] = 'strings'
解析一个配置文件
import configparser
# 实例一个config对象,相当于一个空字典
config = configparser.ConfigParser()
# 读一个文件
config.read('example.ini')
# sections 是块的意思,读取块名,不会显示DEFAULT块,有特殊意义
print(config.sections())
# 和config.sections 一样,返回值放进一个列表内
print(config.options('joker'))
# 把键和值取出来放进元组
print(config.items('fri'))
# 取出嵌套的值
print(config.get('joker','name'))
# 读取块下的变量值,名称不区分大小写,也可以取出嵌套值
print(config['joker']['name'])
>>> ['joker', 'fri']
>>> ['name', 'level', 'stat', 'jax']
>>> [('name', 'cola'), ('level', '1'), ('stat', '666')]
>>> vn
>>> vn
当遍历一个配置文件时会打印出默认值块的内容:
import configparser
config = configparser.ConfigParser()
config.read('example.ini')
# 不仅会显示key_name下的值,也会显示DEFAULT下的值
for i in config['DEFAULT']:
print(i)
pickle模块:
写:dumps
import pickle
with open('file.txt','wb') as f: # 需要转换为字节的形式,写的时候需要wb模式
a = pickle.dumps('66666')
f.write(a)
dump:
import pickle
with open('file.txt','wb') as f:
# pickel.dump(self,f)
a = pickle.dump('66666',f)
读:loads
import pickle
f = open('file.txt','rb')
data = pickle.loads(f.read())
print(data)
load
import pickle
f = open('file.txt','rb')
data = pickle.load(f)
print(data)