python7——文件操作(file、os模块、json模块)

一、文件操作

  • 思考: 日常中的数据存储在纸上, 而计算机的数据存储在哪里呢?
    —硬盘上
  • 一个程序在运行过程中用了九牛二虎之力终于计算出了结果,试想一下如果不把这些数据存放起来,相比重启电脑之后,“哭都没地方哭了”。 默认数据是加载到内存中,结果也是保存到内存中, 程序执行结束,所有的数据释放。

1.文件的打开

在这里插入图片描述

f = open('hello.txt','a')
f.write('linux\n')
f.close()

在这里插入图片描述

2.file对象的属性

在这里插入图片描述

3.file对象常用方法

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

with open('test.txt', 'w') as f:
    f.write('hello world\n')
    f.seek(0,0)
    print(f.tell())
    f.seek(0,2)
    print(f.tell())

在这里插入图片描述

4.文件关闭

在这里插入图片描述

f = open('hello.txt')
result = f.readlines()
f.close()
print(result)

在这里插入图片描述

5.with语句工作原理

python中的with语句使用于对资源进行访问的场合,保证不管处理过程中是否发生错误或者异常都会自动执行规定的(“清理”)操作,释放被访问的资源,比如有文件读写后自动关闭、线程中锁的自动获取和释放等。

with open('hello.txt', 'w') as f:
    f.write('redhat\n')

在这里插入图片描述
练习:统计文件当中文件出现的数量
使用造好的“轮子”Counter模块

with open('haha') as f:
    words=f.read().split()
    print(words)
from collections import Counter
counter = Counter(words)
result = counter.most_common(5)
print(result)

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

二、os模块

1.系统信息

  • os,语义为操作系统,处理操作系统相关的功能,可跨平台。 比如显示当前目录下所有文件/删除某个文件/获取文件大小……
    在这里插入图片描述
import os
print(os.name)
print(os.uname())
print(os.uname().nodename)
print(os.uname().sysname)
print(os.environ)
print(os.environ.get('PATH'))
print(os.getenv('PATH'))

在这里插入图片描述

2.文件路径

在这里插入图片描述

import os
BASE_DIR = os.path.dirname(__file__) #获取某个文件对应的目录名,__file__当前文件
setting_file = os.path.join(BASE_DIR,'dev.conf') #join拼接,将目录名和文件名拼接起来
print(setting_file)
filename = '/root/PycharmProjects/pythonProject1/day4/dev.conf'
print(os.path.basename(filename))
print(os.path.dirname(filename))

在这里插入图片描述

3.文件处理

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

4.文件批处理

  1. 在当前目录新建目录img, 里面包含100个文件, 100个文件名各不相同(X4G5.png)
  2. 将当前img目录所有以.png结尾的后缀名改为.jpg

在这里插入图片描述

三、json模块

  • JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。
  • JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。
  • 这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

1.python和JSON数据格式转换规则

在这里插入图片描述
注意:python 中str类型到JSON中转为unicode类型,None转为null,dict对应object;
pyhton中的集合不能转成json格式。
在这里插入图片描述

2.序列化及反序列化常用参数

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

import json
users = {'name':'jia', 'age':18, 'city':'xian'}
json_str = json.dumps(users)
with open('hello.json', 'w') as f:
    json.dump(users, f, ensure_ascii=False, indent=4)
    print('success')
print((json_str,type(json_str)))

在这里插入图片描述

3.自定义复杂数据类型编解码

例如我们碰到集合对象, datetime对象,或者自定义的类对象等json默认不支持的数据类型时,我们就需要自定义编解码函数。有两种方法来实现自定义编解码。
在这里插入图片描述

例子:将信息存储到excel文件中

1.安装pip
pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装和卸载的功能,现在大家用到的所有包不是自带的就是通过pip安装的。

wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
pip --version

2.安装pandas
Pandas是进行数据分析的一个主要工具
点击file—进入settings—点击+进入(我这里是安装好的,红框圈起来了)
在这里插入图片描述
搜索pandas(安装好的会显示蓝色),点击install安装
在这里插入图片描述
3.安装openpyxl
openpyxl 是一个第三方库,可以读写excel 文件
openpyxl是个读写excel2010+,支持xlsx、xlsm、xltx、xltm文件的python库。
在这里插入图片描述

import pandas
hosts = [
    {'host':'1.1.1.1', 'hostname':'test1','idc':'ali'},
    {'host':'1.1.1.2', 'hostname':'test2','idc':'huawei'},
    {'host':'1.1.1.3', 'hostname':'test3','idc':'tencent'},
    {'host':'1.1.1.4', 'hostname':'test4','idc':'tinghua'},
]
df = pandas.DataFrame(hosts)
print(df)
df.to_excel('hosts.xlsx')

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

贾几人要努力

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

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

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

打赏作者

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

抵扣说明:

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

余额充值