python程序设计——文件操作
分类
1.文本文件
存储常规字符串,由若干文本行组成,每行以换行符'\n'结尾
2.二进制文件
把对象以字节串存储,常见的图形图像、可执行文件、数据库文件office文档等
#创建文件
>>fw = open('sample.txt','w+',encoding='utf-8')
>>s = '文本读取方式\n sample.txt w+\n'
>>fw.write(s)
>>fw.close()
#查看sample.txt
文本读取方式
sample.txt w+ #建议形式,关键字with可以自动管理资源
>>s = '文本读取方式\n sample.txt w+\n'
>>with open('sample.txt','w+',encoding='utf-8') as fw:
>> fw.write(s)
# 判断文件对象是否关闭
>>fw.colsed
True #添加文件内容
>>s = 'hello\n'
>>with open('sample.txt','a+',encoding='utf-8') as fa:
>> fa.write(s)
文本读取方式
sample.txt w+
hello # 读取文件内容
# 读取一行
>>fread = open('sample.txt','r',encoding='utf-8')
>>fread.readline()
'文本读取方式\n'
>>fread.readline()
' sample.txt w+\n'
>>fread.readline()
'hello\n' # 一次读取所有行
>>fread = open('sample.txt','r',encoding='utf-8')
>>fread.readlines()
['文本读取方式\n', ' sample.txt w+\n', 'hello\n'] #读取固定字符个数
>>fread = open('sample.txt','r',encoding='utf-8')
>>fread.read(4)
'文本读取'
45 >>fread.close()
可以使用dir() 查看与对象相关的方法,使用help()查看方法的用法
>>fread = open('sample.txt','r',encoding='utf-8')
>>fread.colse()
>>dir(fread)
#查看read()函数用法
>>help(fread.read)
文件序列化
序列化,就是把内存中的数据在不丢失数据类型的情况下,转化为二进制形式的过程
1.使用pickle模块
Pickle是常用并且快速的二进制文件序列化模块
#使用pickle dump依次写入二进制文件
import pickle
f = open('sample_pickle.dat','wb') alist = [[2,3,4],[6,7,8]]
aset = {'a','b','c'}
atuple = (-5,-3,-1)
astr = '北京欢迎你,welcome!'
adic = {'name':'jin','sex':None}
try:
pickle.dump(alist,f)
pickle.dump(aset,f)
pickle.dump(atuple,f)
pickle.dump(astr,f)
pickle.dump(adic,f)
except:
print('write error')
finally:
f.close() #使用Pickle load依次读取二进制文件
fr = open('sample_pickle.dat','rb')
try:
x=pickle.load(fr)
print(x)
x=pickle.load(fr)
print(x)
x=pickle.load(fr)
print(x)
x=pickle.load(fr)
print(x)
x=pickle.load(fr)
print(x)
except:
print('read error')
finally:
fr.close()
2.使用struct模块
import struct
import binascii values = (1, b'good', 1.22) #字符串必须为字节流类型
s = struct.Struct('I4sf')
packed_data = s.pack(*values) #序列解包
unpacked_data = s.unpack(packed_data) print('Original values:', values)
print('Format string :', s.format)
print('Uses :', s.size, 'bytes')
print('Packed Value :', binascii.hexlify(packed_data))
print('Unpacked Type :', type(unpacked_data), ' Value:', unpacked_data) out:
Original values: (1, b'good', 1.22)
Format string : b'I4sf'
Uses : 12 bytes
Packed Value : b'01000000676f6f64f6289c3f'
Unpacked Type : <class 'tuple'> Value: (1, b'good', 1.2200000286102295)
python程序设计——文件操作的更多相关文章
- Python :open文件操作,配合read()使用!
python:open/文件操作 open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) 如何打开文件 handle=open(file_name,a ...
- Python 常见文件操作的函数示例(转)
转自:http://www.cnblogs.com/txw1958/archive/2012/03/08/2385540.html # -*-coding:utf8 -*- ''''' Python常 ...
- 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容
孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...
- 孤荷凌寒自学python第三十三天python的文件操作初识
孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...
- python中文件操作的六种模式及对文件某一行进行修改的方法
一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...
- python中文件操作的其他方法
前面介绍过Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open('poems','r', ...
- Python常见文件操作的函数示例
# -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname() ...
- python的文件操作及简单的用例
一.python的文件操作介绍 1.文件操作函数介绍 open() 打开一个文件 语法:open(file, mode='r', buffering=-1, encoding=None, errors ...
- python基本文件操作
python文件操作 python的文件操作相对于java复杂的IO流简单了好多,只要关心文件的读和写就行了 基本的文件操作 要注意的是,当不存在某路径的文件时,w,a模式会自动新建此文件夹,当读模式 ...
随机推荐
- 【AngularJS学习笔记】Java Script "use strict" 严格模式
---恢复内容开始--- 学习Angular的时候,发现好多优秀的源码中,JS文件的最上面,都会写上"use strict"; 这几个字符,搜了一下,找到一篇比较不错的文章,抄过来 ...
- flask总结之session,websocket,上下文管理
1.关于session flask是带有session的,它加密后存储在用户浏览器的cookie中,可以通过app.seesion_interface源码查看 from flask import Fl ...
- 苹果内购小结 - iOS
此篇针对 iOS 支付进行一次小结,很久没碰这块了,有些方法 Apple 官方也进行了优化,故也将随之进行更新. 首先,code 部分将分为两部分,一部分在 appdelegate 中,另一部分单独封 ...
- 丑数(Ugly Numbers, UVa 136)
丑数(Ugly Numbers, UVa 136) 题目描述 我们把只包含因子2.3和5的数称作丑数(Ugly Number).求按从小到大的顺序的第1500个丑数.例如6.8都是丑数,但14不是,因 ...
- Kali Basic Configuration
1:Kali Version root@kali-node01:~# cat /etc/os-release PRETTY_NAME="Kali GNU/Linux Rolling" ...
- es6-----部分新特性详解
ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony(和谐之意,显然没有跟上我国的步伐,我们已经进入中国梦版本了).上一次标准的制订还是2009年出台 ...
- Altium Designer常用快捷键
一:Altium原理图快捷键: Shift+左键选择 :实现多个目标选择 Ctrl+左键拖动 :保持连线拖动目标 Shift+c :清除当前过滤(?? ...
- tcp/ip五层协议
TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族.互联网协议(Internet Protocol Suite)是一个网络通信模型,以及一整个网络传输协议家族,为互联 ...
- 【转载++】C/C++错误分析errno,perror,strerror和GetLastError()函数返回的错误代码的意义
本文是上一篇“fopen返回0(空指针NULL)且GetLastError是0”的侧面回应.听赶来多么地正确和不容置疑,返回NULL时调用GetLastError来看看报错啊,但当时却返回了0,大家都 ...
- linux 命令绿色安装
有些电脑不能联网,软件不能使用 apt-get 或 dnf . 从已安装的机器上拷贝命令到这台机器上就可以.设想. **** 以 tree 命令为例: **先从联网的机器上安装 apt-get ins ...