1.文件操作

1.1 文件操作的流程
1.打开文件,得到文件句柄并赋值给变量。
2.通过句柄对文件进行操作。
3.关闭文件

1.2 从文件中读取数据
要使用文件中的信息,首先需要将信息读取到内存中,为此,那你可以一次读取文件的所有内容,也可以每次逐行读取。
创建一个包含文件各行内容的列表
在使用with关键字时,open()返回的文件对象只在with代码块内可用。如果要在with代码块外访问文件内容,可以再with代码块内将文件的各行存储在一个列表,并在with代码快外使用该列表:这样我们可以立即处理文件各个部分,也可以推迟到程序后面在处理。

eg:( #事先要有account这个文件
import json
with open('account', 'r') as f:lines = f.readlines()print(lines)for i in f.readlines():print(i)
)

1.2.1 读取整个文件
首先我们来创造一个文件:my.test

《再别康桥》
作者:徐志摩
轻轻的我走了,
正如我轻轻的来;
我轻轻的招手,作别西天的云彩。
那河畔的金柳,是夕阳中的新娘;
波光里的艳影,在我的心头荡漾。
软泥上的青荇,油油的在水底招摇;
在康河的柔波里,我甘心做一条水草!
那榆荫下的一潭,不是清泉,是天上虹揉碎在浮藻间,沉淀着彩虹似的梦。
寻梦?撑一支长篙,向青草更青处漫溯,满载一船星辉,在星辉斑斓里放歌。
但我不能放歌,悄悄是别离的笙箫;
夏虫也为我沉默,沉默是今晚的康桥。

接下来操作

#打开文件
open()函数接受一个参数,即要打开的文件名。
python在当前当前所在目录中查找指定文件。open函数返回一个表示文件的对象。
Python将这个对象存储在我们将在后面使用的变量中。f = open('my.test','r',encoding='utf-8')
#也可以用上面的with#读取文件内容
print(f.read()) #直接读取  文件内容就会全部读取出来这时候输出文件会有一行空行?
因为read()到达文件末尾时会返回一个空字符串,
而将空字符创显示出来就是空行,删除末尾的空行用rstrip()处理。
lines = f.read()
print(lines.rstrip())
#这时候输出就没有空行了#遍历文件
#我们调运了open(),但是没有调运close();
#想我们前面所述,调运open()以及close()函数来打开和关闭文件,
for line in f.readlines():print(line.rstrip())f.close()#一行一行打印 打印完 打印一个换行 readline
print(f.readline()) #一行一行打印 打印完 打印一个换行
print(f.readline())
print(f.readline())#数字定义几行就打印几行  .strip取消打印空行
for i in range(5): #数字定义几行就打印几行  .strip取消打印空行print(f.readline().strip())以列表的形式打印每一行 第一次打印文件内容 打印的指针到文件末尾了 所以之后的打印都是空的
readlines
print(f.readlines())
print(f.readlines())
print(f.readlines()) 后面两次打印的都是空列表 []
都可以用for遍历
for i in f.readlines():print(i.strip())既然可以用列表 那也就可以用列表的定义方法
# 列表的定义方法
for index,itm in enumerate(f.readlines()):if index == 1:print(index,itm)结果为:1 作者:徐志摩for i in f:print(i.strip())
#本身是迭代器方法。程序运行可以中断#打印文件句柄的标号 由操作系统决定
print(f.fileno())
print(f.readline().strip())
#打印指针位置  一个汉子三个字符 换行两个字符
print(f.tell())
这三行结果为3《再别康桥》20 #20就是两个署名号x3+4个汉字x3+一个换行符x2=20
print('----------------')
print(f.readline().strip())
结果为:3《再别康桥》20----------------作者:徐志摩 #这个时候读取文件会从上一次文件读取到的指针开始读取
#数字为几就打印几个汉字 这个和tell()里面的不一样
print(f.read(3))
结果为   轻轻的    #这个时候文件的指针在的后面
也可以加for循环
print('----------------')
print(f.readline().strip())
print(f.tell())
print(f.read(4))
print('----------------')
for i in range(5):print(f.readline().strip())print(f.tell())
结果为3《再别康桥》20----------------作者:徐志摩轻轻的----------------我走了,61正如我轻----------------轻的来;87我轻轻的招手,作别西天的云彩。132那河畔的金柳,是夕阳中的新娘;177波光里的艳影,在我的心头荡漾。222软泥上的青荇,油油的在水底招摇;270
#tty,设备文件,不可读 判断文件是否可读
print(f.readable())  结果为  True
判断文件是否可以seek
print(f.seekable())  结果为  True

readline和readlines的区别
f.readline : 读出所有内容。一行一行读文件内容 类似于 linux 里面的 cat命令读文件内容 (适合文件内容比较多)
f.readlines : 读读所有内容,每一行内容当作列表的元素。 整体读文件内容,读出所有 (适合小文件的读取)
没法实现协程,程序一旦运行,将不会中断。

2.序列化与反序列化

很多程序都需要用户输入某种信息,如让用户存储游戏首页项或者提供可视化的数据。不管是专注什么,程序员都会把用户提供的信息存储在列表和字典等数据结构中。用户关闭程序时,你几乎总是要保存他们提供的信息:一种简单的方式就是使用.json来存储数据。
json模块让你能够将简单的python数据结构转存到文件中,并在程序再次运行时加载该文件中的数据。
你还可以使用json在python程序之间分享数据。
更为重要的是,Json数据格式并非python专用,这让你能够将json格式存储的数据与使用其他编程语言的人分享,或其他编程语言调用。
Json:(JavaScript Object Notation)格式最初是为javascript开发的,但后来成了一种常见的格式,包括python在内的众多语言采纳。

代码打开文件
#保存在了内存 === 持久化(硬盘)(File,mysql,redis(持久化))
# 写入文件 --》 打开 --》 写 --》关闭
# 打开一个文件 并写 open(‘account’,‘w’)
#序列化与反序列化 json方法
# 序列化 :内存对象 —》 硬盘
# 反序列化 :硬盘 —》 内存对象

  1. 使用json.dump()和json.load()
imort json
info = {'leilei':'123','shitou':'123','dongyu':'123'
}
with open('account','w') as f:  #省略了关闭文件的步骤
# f = open('account','w')
#     f.write('123')json.dump(info,f) #序列化持久化写入文件#f.close()这个时候就会发现在当前目录下会生成一个文件为 account的名字文件内容就为 这个info这个字典
反序列化读取文件内容
这个时候另起一个python文件
import json
with open('account', 'r') as f:info = json.load(f)
print(info)
就可以把文件里面的字典读取进来

3.(外加) 生成随机数

import random
ran_pass = random.randrange(100000,1000000)  #生成六位随机数
print(ran_pass)

python对文件的操作(一)序列化和反序列化相关推荐

  1. python36_第36 p,就这几个方法,Python中文件的操作

    大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第X篇文章,第二阶段的课程:Python基础知识:Python中文件的操作(下篇). 学习本课程,建议先看一遍:[计算机基础知识]课 ...

  2. python对文件的操作都有什么_python中文件操作的相关内容总结(附示例)

    本篇文章给大家带来的内容是关于python中文件操作的相关内容总结(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1. 文件操作介绍 说到操作文件我们肯定会想到流,文件的操 ...

  3. Day6 python对文件的操作——百度飞桨领航团零基础Python入门

    python文件操作 前言 一.JSON是什么? 二.python对文件的操作 1.写入文件内容 2.打开.读取.关闭文件 文件数据若有问题采用两种解决方式 file对象的函数列表 写入文件内容 对象 ...

  4. python 对象序列化 pickling_[Python]对dat文件的操作:序列化对象

    一:dat文件 在我之前的博客中,我介绍了对txt文件操作的一些相关知识,以及如何对其进行读写操作,也介绍了文本文件和二进制文件的一些区别.虽然对txt文件操作已经能够满足储存数据的需求,但txt文件 ...

  5. python基础------文件读写操作、re、os和sys模块

    1. 文件读取 1.1 file文件 file文件读取:只能写入字符串,如果要写入字符串以外的数据,先将他转换为字符串,文件内的数据不容易操作 #文件打开 file.open() #文件关闭 file ...

  6. python怎么读write_Python如何读写文件?python写入文件读写操作详解

    Python文件的打开或创建可以使用函数open().该函数可以指定处理模式,设置打开的文件为只读.只写或可读写状态.open()的声明如下所示. open(file, mode='r', buffe ...

  7. python对文件的操作模式_python对文件的操作

    一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法. 1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 2.返回指定目录下的所有文件 ...

  8. Python中文件的操作

    1.文件的基本操作 文件打开的格式: file = open(文件路径,读写模式) 文件路径:可以写相对路径,也可以写绝对路径 读写模式:r(读取) w(写入) a(追加) 文件打开后,必须关闭,否则 ...

  9. python对文件读写操作

    不知道大家是否跟我一样,总是分不清楚python里面对于读写操作,今天给自己重新总结一下. w+ 可以同时读写,如果文件不存在,则新建文件,写入时是清空之前的内容. a+可以同时读写,如果文件不存在, ...

最新文章

  1. NO.7 今天我们是实用派,看看业务选择和部署以及常用故障解决方案是怎么做的...
  2. 【C++ 语言】命名空间 ( namespace | 命名空间定义 | 命名空间嵌套 | 域作用符 | 与 include 对比 )
  3. Autoencoder 详解
  4. 【地理信息系统GIS】教案(七章全)第七章:3S技术综合应用
  5. jq动态获取input的值传给html,jquery 保证html()拿到的html字符串包含input的value值
  6. bzoj1975 [Sdoi2010]魔法猪学院 a*+堆
  7. linux 目前运行的服务,Linux系统服务
  8. 20200926:(leetcode207周周赛题解(上))
  9. 开源淘宝客APP源码淘客商城源码uniapp开发模版
  10. 房地产项目动态计划管理系统
  11. vue 局部回到顶部_vue中回到顶部
  12. ps魔棒工具抠图和合成图
  13. RestTemplate请求oauth获取token报401错误
  14. html表格内容自动换行符,html表格内容自动换行
  15. 饥荒专用服务器全图显示代码,饥荒联机地图全开代码
  16. Retrofit2.9.0源码解析
  17. 肉蛋堡记 - 符皓冉
  18. oracle转trs,TRS数据库数据的导入导出2.doc
  19. 关于SNR和EbN0转换关系
  20. 如何在Windows上安装Ghost

热门文章

  1. 阿里云HaaS固件烧录至m5stack的步骤
  2. 电商商品SKU采集软件?
  3. 面试谈薪资时,HR问上家公司薪水并要求看流水,这是什么意思?
  4. Python所有的库都在这里了!!强烈建议收藏
  5. Day04 数据库设计01 ~多表之间的关系(一对一,一对多,多对多)
  6. CF51C Three Base Stations
  7. C++ pushback
  8. html表单中默认选中的值,前端学习笔记一一HTML表单标签(form)
  9. winform界面嵌入dwg图纸_C# 实现预览dwg文件完整源代码(无需autocad环境)
  10. sql 指定服务器名称,SQL语句实现查询SQLServer服务器名称和IP地址