Python9:os、json与pandas模块

1. 异常捕获

'''
try:可能出现报错的代码
except:如果出现异常,执行的内容
finally:最终都会执行的内容
'''

try:
    uname = os.uname()
except Exception:
    uname = platform.uname()
finally:
    print(uname)

2. os模块

os:语义为操作系统,处理操作系统相关的功能,可跨平台。
比如显示当前目录下所有文件/删除某个文件/获取文件大小......
1.获取主机信息
import os
import platform
print(os.name)
print(platform.uname())
#获取主机信息,windows系统使用platform,linux使用os模块


2.获取系统环境变量
envs = os.environ
#os.environ.get('PASSWORD')  从环境变量里面获取某种特殊变量值
#os.getenv('PASSWORD')
print(envs)


3.path
path = os.path
print(path)
#结果:<module 'ntpath' from 'D:\\2345Downloads\\python-3.7.0\\lib\\ntpath.py'>


4.目录名与文件名拼接
'''
os.path.dirname 获取某个文件对应的目录名
__file__当前文件
join拼接,将目录名和文件名拼接起来。
rename(需要修改的文件名, 新的文件名)
'''
BASE_DIR = os.path.dirname(__file__)
print(BASE_DIR)     #E:/AAAaaa---python day/Python6
setting_file = os.path.join(BASE_DIR,'dev.conf')
new_file = os.rename('oops.txt','ops.txt')
os.remove('ops.txt')
print(setting_file)     #E:/AAAaaa---python day/Python6\dev.conf


5.创建目录和删除目录
os.makedirs('E:/AAAaaa---python day/Python7')
os.mkdir()
os.rmdir()


6.创建文件和删除文件
os.mknod()
os.remove()


7.判断文件或者目录是否存在
print(os.path.exists('hello.txt'))  #True


8.分离后缀名和文件名
print(os.path.splitext('hello.txt'))    #('hello', '.txt')
print(os.path.split('hello.txt'))   #('', 'hello.txt')


9.将目录名和文件名分离
print(os.path.split('E:/AAAaaa---python day/Python6'))
#('E:/AAAaaa---python day', 'Python6')

3. json模块

  • JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。
    它基于ECMAScript的一个子集。

  • JSON采用完全独立于语言的文本格式,但是也使用了类似于
    C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。

  • 这些特性使JSON成为理想的数据交换语言。
    易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

官方文档

3.1 json.dumps

json.dumps:将 Python 对象编码成 JSON 字符串

语法格式:
json.dumps(obj, skipkeys=False, ensure_ascii=True,check_circular=True, allow_nan=True, cls=None, indent=None,separators=None, encoding=“utf-8”, default=None, sort_keys=False,
**kw)

ensure_ascii=False:中文可以成功存储
indent=4: 缩进为4个空格
separators=(',',':'):自定义分隔符,元素之间分隔符为逗号,字典的key与value分隔符为冒号
sort_keys=True:字典排序
  1. 例1:
import json
data = [ {
    
     'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' :5 }]
data2 = json.dumps(data)
print(data2)
结果:
[{
    
    "a": 1, "b": 2, "c": 3, "d": 4, "e": 5}]
  1. 例2:使用参数让JSON数据格式化输出
import json
data = [ {
    
     'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' :5 }]
data2 = json.dumps({
    
    'a':'Runoob','b':7},sort_keys=True,indent=4,separators=(',', ': '))
print(data2)
结果:
{
    
    
    "a": "Runoob",
    "b": 7
}
  1. 例3:
import json
users = {
    
    'name':'yxy','age':'21','city':'西安'}
json_str = json.dumps(users)
with open('oops.json','w') as f:
    json.dump(users,f,ensure_ascii=False,indent=4)
    print("存储成功")
print(json_str,type(json_str))

在这里插入图片描述

3.2 json.loads

json.loads:将已编码的 JSON 字符串解码为 Python 对象

语法格式:
json.loads(s[, encoding[, cls[, object_hook[, parse_float[,
parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

  1. 例1:
import json
jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}'
text = json.loads(jsonData)
print(text)

结果:
{
    
    'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
  1. 例2:
import json
with open('oops.json') as f:
    python_obj = json.load(f)
    print(python_obj,type(python_obj))

结果:
{
    
    'name': 'yxy', 'age': '21', 'city': '西安'} <class 'dict'>

附加:
第三方库:Demjson Demjson
是 python 的第三方模块库,可用于编码和解码 JSON 数据,包含了JSONLint 的格式化及校验功能

4.pandas模块存储Excel文件

  1. Pandas是python的一个数据分析包
  2. Pandas最初被作为金融数据分析工具而开发出来,Pandas为时间序列分析提供了很好的支持。
  3. Pandas是基于NumPy的一种工具。
  4. Pandas纳入了大量函数和一些标准的数据模型,提供了高效操作大型数据集所需的工具,提供了大量能使我们快速便捷地处理数据的函数和方法,让Python成为强大而高效的数据分析环境。
import  pandas,openpyxl
hosts = [
{
    
    'host':'1.1.1.1','hostname':'test1','idc':'aliyun'},
    {
    
    'host':'1.1.1.2','hostname':'test2','idc':'aliyun'},
    {
    
    'host':'1.1.1.3','hostname':'test3','idc':'aliyun'},
    {
    
    'host':'1.1.1.4','hostname':'test4','idc':'aliyun'}
]

# 1.转换数据类型
df = pandas.DataFrame(hosts)

# 2.存储到excel文件中
df.to_excel('hosts.xlsx')
print('success')

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46074899/article/details/114836399