一、 文件操作介绍

日常中的数据存储在纸上, 而计算机的数据存储在哪里呢? —硬盘上

1. 文件的作用

一个程序在运行过程中用了九牛二虎之力终于计算出了结果,试想一下如果不把这些数据存放起来,相比重启电脑之后,“哭都没地方哭了”。 默认数据是加载到内存中,结果也是保存到内存中, 程序执行结束,所有的数据释放。

2.文件的打开读写关闭

文件的打开模式

要读取二进制文件,比如图片、视频等等,用’rb’, ‘wb’, 'ab’等模式打开文件即可

# 1.打开文件
"""
mode:r:只能读文件w:只能写入(清空文件内容)a+:读写(追加)
"""
f = open('doc/hello.txt',mode='a')
# 2.文件的读写操作
f.write('\nhello python')
# 3. 文件的关闭
f.close()

文件最初内容:

代码运行结果:

3.File对象的属性:

4.File对象的常用方法

5. 指针定位

seek(offset, from)有2个参数: offset:偏移量 from:方向
0:表示文件开头;
1:表示当前位置;
2:表示文件末尾
1). 把位置设置为:从文件开头,偏移5个字节
2). 把位置设置为:文件最开始
3). 把位置设置为:文件最末尾

6.文件的关闭

方法一: 调用close()方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,
并且操作系统同一时间能打开的文件数量也是有限的:

方法二: Python引入了with语句来自动帮我们调用close()方法

"""
with 语句
"""
with open('doc/test.txt','w+') as f:   #打开一个文件,如果不存在的话创建w+ 保存为ff.write('hello world\n')  #写入文件f.seek(0,0)   #移动指针位置到文件最开始#f.seek(0,2)  #移动指针位置到文件末尾print("当前指针位置为:",f.tell())print(f.read())   #读取文件内容

代码运行结果:

二、os模块

os,语义为操作系统,处理操作系统相关的功能,可跨平台。 比如显示当前目录下所有文件/删除某个文件/获取文件大小……

1.关于操作系统

import os
import platform
# 1.获取操作系统类型
print(os.name)
# 2.获取主机信息,windows系统使用platform模块,如果是linux系统直接使用os模块
"""
try: 可能出现报错的代码
excpt:可能出现异常,执行的内容
finally:是否有异常,都会执行的内容
"""
try:uname = os.uname()
except Exception:uname = platform.uname()
finally:print(uname)
# 3.获取系统的环境变量
envs  = os.environ
# os.environ.get('PASSWORD')   通过key值获取环境变量对应的value值
print(envs)

代码运行结果:

2.关于路径

# 1.判断是否为绝对路径
print(os.path.isabs('D:/python/运维项目/doc/test.txt'))
print(os.path.isabs('test.txt'))
# 2.生成绝对路径
print(os.path.abspath('D:/python/运维项目/doc/test.txt'))
print(os.path.abspath('test.txt'))
# 3.目录名和文件名的拼接
#os.path.dirname获取某个文件对应的目录名
#__file__是指当前文件
#join 拼接,将目录和文件名拼接起来
BASE_DIR = os.path.dirname(__file__)
setting_file = os.path.join(BASE_DIR,'dev.conf')
print(setting_file)
# 4.获取目录名或者文件名
filename = 'D:/python/运维项目/doc/test.txt'
print(os.path.basename(filename))
print(os.path.dirname(filename))

代码运行结果:

3.关于文件创建和删除

os模块中的rename()可以完成对文件的重命名操作。
rename(需要修改的文件名, 新的文件名)

os模块中的remove()可以完成对文件的删除操作
remove(待删除的文件名)

# 1.创建目录/删除目录
# mkdir -p sun/sdasd
os.mkdirs('sun/ss')  #递归创建目录
os.mkdir('sun')   #创建单个目录
os.rmdir('sun')   #删除目录
# 2.创建文件/删除文件     #win不支持
os.mknod('sun/ok.txt')
os.remove('sun/ok.txt')
# 3.文件重命名(mv)
os.rename('sun/ok.txt','sun/test.txt')
# 4.判断文件或者目录是否存在
print(os.path.exists('test.txt'))
# 5.分离后缀名和文件名
print(os.path.splitext('hello.txt'))
print(os.path.split('hello.txt'))
# 6.将目录名和文件名分离
print(os.path.split('D:/python/运维项目/doc/test.txt'))

三、json模块详解

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

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

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

python类型数据和JSON数据格式互相转换规则


python 中str类型到JSON中转为unicode类型,None转为null,dict对应object;
pyhton中的集合不能转成json格式。

1.将python对象编码成json字符串

import json
# 1.将python对象编码成json字符串
users = {'name':'sun','age':18,'city':'西安'}
json_str = json.dumps(users)
with open('doc/test.json','w') as f:json.dump(users, f , ensure_ascii=False,indent=4)print('存储成功')
print(json_str,type(json_str))

代码运行结果:

2.将json字符串解码成python对象

with open('doc/test.json') as f:python_obj = json.load(f)print(python_obj,type(python_obj))

代码运行结果:

四、pandas模块

1.打开交互式terminal安装模块

pip install pandas -i https://pypi.douban.com/simple

2.安装对excel文件操作所需要的模块

>pip install openpyxl -i https://pypi.douban.com/simple

3.转换代码:

import pandashosts = [{'host':'1.1.1.1', 'hostname':'server1', 'idc':'ali'},{'host':'1.1.1.2', 'hostname':'server2', 'idc':'huawei'},{'host':'1.1.1.3', 'hostname':'server3', 'idc':'tengxun'},{'host':'1.1.1.4', 'hostname':'server4', 'idc':'wangyi'},
]
#转换数据类型
df = pandas.DataFrame(hosts)
print(df)
#存储到excle文件中
df.to_excel('doc/hosts.xlsx')

代码运行结果:

生成的excel文件

五、词频统计练习题

"""
技能需求:1. 文件操作2. 字符串的分割操作3. 字典操作
功能需求:词频统计1. 读取song.txt文件   with open(filename) as f: content=f.read()2. 分析文件中的每一个单词,统计每个单词出现的次数。{"hello":2, "python":1, "java":1}- 分析文件中的每一个单词content = "hello python hello java"words = content.split()- 统计每个单词出现的次数- {"hello":2, "python":1, "java":1}# words = ['hello', 'python', 'hello', 'java']"""
with open('doc/song.txt') as f: content=f.read()
words = content.split()
result = {}
for i in words:if i not in result:result[i] =1else:result[i] +=1
import pprint
pprint.pprint(result)
# 统计出现次数最高的五个单词
from collections import Counter
counter = Counter(i)
result = counter.most_common(5)
print(result)

python持久化存储文件操作相关推荐

  1. python的持久化存储文件操作

    一.文件的基本操作: 什么是文件:日常的我们的信息都记录在纸上,在计算机上相应的记录在硬盘上. 文件的作用:存储数据 # 1. 打开文件 """ 在python,使用op ...

  2. Python之文件操作_读取_编码_os模块

    目录 前言 一.文件基本操作 1.什么是文件 2.操作文件的步骤 3.文件的路径 4.open函数操作权限总结 5.文件读取 6.with-open-as 7.文件定位读取 8.文件编码 二.OS模块 ...

  3. Python之文本操作

    Python之文本操作 文本文件 文本文件是一种典型的顺序文件,其文件的逻辑结构又属于流式文件.文本文件是指以 ASCII 码方式(也称文本方式)存储的文件,更确切地说,英文.数字等字符存储的是 AS ...

  4. Python模块MySQLdb操作mysql出现2019错误:Can't initialize character set utf-8

    我使用python的MySQLdb模块实现了一个mysql client, 在测试时,出现了如下错误 Python模块MySQLdb操作mysql出现2019错误:Can't initialize c ...

  5. Python 炫技操作:合并字典的七种方法

    来源 | Python编程时光(ID: Cool-Python) Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的.在这些人的眼里,能够写出那些一般开发者看 ...

  6. Python OpenCV像素操作

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:opencv学堂 Python OpenCV像素操作 环 ...

  7. python列表字典操作_Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结...

    创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...

  8. python 实现卷积操作

    python实现卷积操作 调用tf.nn.conv2d()实现卷积 自己实现卷积函数 我们知道,tensorflow里面自带卷积函数,tf.nn.conv2d()就可以实现相关功能,本文主要是自己实现 ...

  9. python列表按照指定顺序排序-Python常见排序操作示例【字典、列表、指定元素等】...

    本文实例讲述了Python常见排序操作.分享给大家供大家参考,具体如下: 字典排序 按value排序 d1 = {"name":"python","b ...

最新文章

  1. Java项目:无库版银行管理系统(java+Gui+文档)
  2. 排序---初级排序算法(选择排序、插入排序和希尔排序)
  3. 计算机社区活动,计算机与信息学院“e修哥”党支部进社区开展志愿服务活动...
  4. python中的单继承,多继承和mro顺序
  5. Linux -sed
  6. 船舶自动识别系统(AIS)
  7. Linux下coredump调试3:补录
  8. Centos7安装、卸载、使用Docker
  9. 记次浙大月赛 134 - ZOJ Monthly, June 2014
  10. Android与iOS/WP8跨平台整合设计与开发_专栏
  11. C++语言定义的标准转换
  12. Atitit 网络设备的自动发现机制 需求如下: 1、自动获取当前设备所在网段及当前与当前网段有连接的网段的所有IP,并判断出是哪类设备。如:服务器、交换机、防火墙等。 2、如何根据第1点得到的
  13. 手机日志抓取工具及注意事项
  14. 财富游戏道具:保险篇
  15. MacOS 系统安装超详细教程
  16. python应用_恺撒密码加密与解密
  17. 御坂网络(枚举基准,二分图)
  18. 電腦機房空調氣流設計與節能
  19. 十三届蓝桥青少组省赛Python-20220423
  20. php调试技术手册读书笔记,RT-Thread读书笔记之一:开始学习了

热门文章

  1. MATLAB调试caffe,在MATLAB下调试Caffe
  2. 监督学习——通用线性模型
  3. 用 Python 制作子弹图也这么简单,爱了~
  4. 18 个 Python 高效编程技巧,Mark!
  5. python实验三答案_20194123 实验三《Python程序设计》实验报告
  6. 机器学习从零开始-Kaggle数据用PurePython实战
  7. Laravel-Action 对代码的改造
  8. Tomcat下载步骤
  9. MAC MAMP 中安装配置使用 ThinkPHP
  10. 【4】 Java基础 四