文章目录
1.文件操作
1.1文件常规操作
属性 | 描述 |
---|---|
file.close | 返回true,若文件没有关闭,返回false |
file.mode | 返回所打开文件的访问模式 |
file.name | 返回文件名称 |
file.softspace | print输出后跟空格符返回false,反之为true |
在python中,可以使用open函数,打开一个已经存在的文件,或者创建一个新文件。
如果文件不存在那么创建,如果存在那么就先清空,然后写入数据。open(文件名,访问模式) e.g. f = open(‘test.txt’, ‘w’)
文件的作用:
默认数据是加载到内存中,结果也是保存到内存中, 程序执行结束,所有的数据释放,如果没有将数据保存在文件中,那么将是一场悲剧。
1.1.1 文件的打开
文件打开的模式:
要读取二进制文件,比如图片、视频等等,用’rb’, ‘wb’, 'ab’等模式打开文件即可
mode:
r: 只能读文件
w: 只能写入(清空文件内容)
a+: 读写(文件追加写入内容)
注意:代码所操作文件路径的一致性
f = open('hello.txt','w+') :文件创建
f.write('linux\n') :文件写入
result = f.readline() :文件读取
f.close() :文件关闭
print(result)
1.1.2 文件的关闭
方法一: 调用close()方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,
并且操作系统同一时间能打开的文件数量也是有限的:
方法二: Python引入了with语句来自动帮我们调用close()方法 :
with open('westos.txt','r') as f:
print(f.read())
1.1.3 with语句
with open('westos.txt', 'w+') as f:
f.write('westos linux\n') # 写入文件
f.seek(0, 0) # ****: 移动指针到文件最开始
print("当前指针的位置:", f.tell()) #0
f.seek(0, 2) # 移动指针到文件末尾
print("当前指针的位置:", f.tell()) #14
print(f.read())
注:
seek(offset, from)有2个参数: offset:偏移量 from:方向
0:表示文件开头;
1:表示当前位置;
2:表示文件末尾
2.OS模块
os,语义为操作系统,处理操作系统相关的功能,可跨平台。 比如显示当前目录下所有文件/删除某个文件/获取文件大小
os模块中的rename()可以完成对文件的重命名操作。
rename(需要修改的文件名, 新的文件名)
os模块中的remove()可以完成对文件的删除操作
remove(待删除的文件名)
test :目录与文件名的拼接并获取
import os 获取主机信息,Linux系统使用os模块
import platform 获取主机信息,windows系统使用platform模块
print(os.name) #获取操作系统类型
try: #可能出现报错的代码
uname = os.uname()
except Exception: #如果出现异常,执行以下代码
uname = platform.uname()
finally: #始终执行
print(uname)
envs = os.environ #获取系统的环境变量
os.environ.get('PASSWORD')
print(envs)
BASE_DIR = os.path.dirname(__file__) :获取当前文件对应的目录名
setting_file = os.path.join(base_dir, 'config.conf') :目录名和文件名拼接
print(setting_file)
filename = '/home/westos/PycharmProjects/pythonProject/6-18/config.conf' print(os.path.basename(filename))
print(os.path.dirname(filename))
应用os模块进行文件的增删改查同linux,这里不多赘述
3. json模块详解
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。
JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。
这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
3.1 python数据格式与json数据格式的相互转换
3.1.1 转换规则
python转换为json | |
---|---|
python | json |
obiect | dict |
arry | list |
string | unicode |
number(int) | int,code |
number(real) | float |
TRUE | TRUE |
FALSE | FALSE |
null | NONE |
import json
###**将python代码成json字符串**###
users = {'name':'westos', "age":18, 'city':'西安'}
json_str = json.dumps(users)
with open('hello.json', 'w+') as f:
json.dump(users, f, ensure_ascii=False#:中文可以成功存储, indent=4 #缩进为4个空格)
print("store success")
print(json_str, type(json_str))
###**将json字符串解码成python代码**###
with open('hello.json') as f:
python_obj = json.load(f)
print(python_obj, type(python_obj))
3.2 txt文件转换为execl文件
import pandas
hosts = [
{'host':'172.25.6.1', 'hostname':'server1', 'idc':'jidong'},
{'host':'172.25.6.2', 'hostname':'server2', 'idc':'tengxun'},
{'host':'172.25.6.3', 'hostname':'server3', 'idc':'huawei'},
{'host':'172.25.6.4', 'hostname':'server4', 'idc':'ali'}
]
df = pandas.DataFrame(hosts)
print(df) ###:转换数据类型
df.to_excel('hosts.xlsx') ### :excel储存
print('success') ### :