1.文件操作介绍
1.打开文件
mode:
r :只能读文件
w:只能写入(清空文件内容后写入)
a:追加
a+:读写(文件追加写入内容)
r+:读写文件开头写入
w+:可读可写(写入后清空文件内容)
2.文件读写操作
3.关闭文件
(1)colse()
(2)with语句(安全管理器,自动关闭文件)
4.文件指针移动
seek(offset,from),offset:偏移量 from:方向
0:表示文件开头
1:表示当前位置
2:表示文件末尾
with open('E:/python/python project/venv/Scripts/java.txt','w+') as f:
f.write('hello wolld\n')
f.seek(0,0) #移动当前指针文件到最开始
print("当前指针位置:",f.tell())
f.seek(0,2) #移动指针位置到文件末尾
print("当前指针位置:",f.tell())
print(f.read())
结果:
当前指针位置: 0
当前指针位置: 13
5.文件的备份
os模块(操作系统模块)
可跨平台(在多个系统都有os模块,都可以使用os命令)
异常处理
{
try:
except:
…
}
import os
import platform
print(os.name) #s输出操作系统名称
"""
#异常捕获
try:可能出现报错的代码
except:如果出错,执行的内容
finanlly:是否异常都执行的代码
"""
try:
uname = os.uname() #获取主机信息
except Exception:
uname =platform.uname() #获取主机信息
finally:
print(uname)
结果:
nt #windows系统默认名称
uname_result(system='Windows', node='NBJJINLONG-LI01', release='10', version='10.0.19041', machine='AMD64')
2.获取系统环境变量
envs = os.environ
#os.environ,get(‘PASSWORD’)
print(envs)
3.关于路径
(1)判断是否绝对路径
print(os.path.isabs(‘E:\python\python project\venv\setting_file’))
(2)生成绝对路径
print(os.path.abspath(setting_file))
(3)目录名与文件名拼接
#os.path.dirname() 获取某个文件的目录名
# __file__当前文件名
# join拼接,将目录和文件名拼接起来
BASE_DIR = os.path.dirname(__file__)
setting_file = os.path.join(BASE_DIR,'dev.conf')
print(setting_file)
with open(setting_file,'w') as f:
pass
(4)创建目录、删除目录
os.makedirirs(‘images/films’)
os.mkdir(‘img’)
os.rmdir(‘img’)
(5)创建文件、删除文件
os.mknod(‘00_ok.txt’)
os.remove(‘00_ok.txt’)
(6)文件重命名
os.rename(‘data.txt’,‘data1.txt’)
(7)判断文件或者目录是否存在
print(os.path.exists(‘img’))
(8)分离后缀名和文件名
print(os.path.splitext(‘hello.png’))
print(os.path.split(‘hello.png’))
(9)分离目录名和文件名
print(os.path.split(’/tmp/hello/hello.png’))
json模块
json(java script object notation )一种轻量级数据交换格式
采用完全独立于语言的文本格式,一种特别类似于c语言家族的语言
一种理想的交换语言,易于阅读和编写,同时易于机器解析生成
数据交换的格式
json----------->python对象
注意:python 中的集合不能转成json格式
1.将python 对象编码成json字符串
#dump 存储到文件中 dumps 不需要存储到文件中
import json
users = {'name':'westos','age':18, 'city':'xian'}
json_str = json.dumps(users)
with open('hello.json','w') as f:
#ensure_asciii=False:中文可以成功存储
#indent=4: 缩进4个字符
json.dump(users,f,ensure_ascii=False,indent=4)
print("存储成功")
print(json_str,type(json_str))
2.将json字符串解码成python对象
#json.load()
import json
with open('hello.json') as f:
python_obj = json.load(f)
print(python_obj,type(python_obj))
3.python格式 excel 存储
安装pandas : pip install pandas -i http://pypu.douban.com/simple
import pandas
users = {
{'host':'1:1:1:1','hostname':'test1','idc':'ali'}
{'host':'1:1:1:2','hostname':'test2','idc':'didi'}
{'host':'1:1:1:3','hostname':'test3','idc':'huawei'}
{'host':'1:1:1:4','hostname':'test4','idc':'qinghua'}
}
df = pandas.DataFrame(hosts) #转化数据类型为二维数组
print(df)
#2.存储到excel文件中
df.to.excel('hosts.xlsx') #需安装excel模块