分类

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程序设计——文件操作的更多相关文章

  1. Python :open文件操作,配合read()使用!

    python:open/文件操作 open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) 如何打开文件 handle=open(file_name,a ...

  2. Python 常见文件操作的函数示例(转)

    转自:http://www.cnblogs.com/txw1958/archive/2012/03/08/2385540.html # -*-coding:utf8 -*- ''''' Python常 ...

  3. 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容

     孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...

  4. 孤荷凌寒自学python第三十三天python的文件操作初识

     孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...

  5. python中文件操作的六种模式及对文件某一行进行修改的方法

    一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...

  6. python中文件操作的其他方法

    前面介绍过Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open('poems','r', ...

  7. Python常见文件操作的函数示例

    # -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname() ...

  8. python的文件操作及简单的用例

    一.python的文件操作介绍 1.文件操作函数介绍 open() 打开一个文件 语法:open(file, mode='r', buffering=-1, encoding=None, errors ...

  9. python基本文件操作

    python文件操作 python的文件操作相对于java复杂的IO流简单了好多,只要关心文件的读和写就行了 基本的文件操作 要注意的是,当不存在某路径的文件时,w,a模式会自动新建此文件夹,当读模式 ...

随机推荐

  1. The App Life Cycle & The Main Function

    The App Life Cycle Apps are a sophisticated interplay between your custom code and the system framew ...

  2. Flask—10-项目部署(02)

    项目部署 WEB工作原理 客户端(chrom) <=> WEB服务器(nginx) <=> WSGI(uWSGI) <=> Python(Flask) <=& ...

  3. python 输入一个整数,判断其是否既是3的倍数,又是5的倍数

    v = int(input('请输入一个整数:')) if v % 3 == 0 and v % 5 ==0: print(v,'即是3的倍数又是5的倍数') else: print('不是3或5的倍 ...

  4. ios下引用MUI后input不能输入,Android端正常

    原因是mui框架的有个css样式 *{ -webkit-user-select: none; } 其作用是禁掉用户可以选中页面中的内容. 添加以下style样式即可 input{ -webkit-us ...

  5. hdu_4465_Candy

    LazyChild is a lazy child who likes candy very much. Despite being very young, he has two large cand ...

  6. Systemd简介与使用

    按下电源键,随着风扇转动的声音,显示器上开启的图标亮起.之后,只需要静静等待几秒钟,登录界面显示,输入密码,即可愉快的玩耍了. 这是我们大概每天都做的事情.那么中间到底发生了什么? 简单地说,从BIO ...

  7. Dubbo 安装ZooKeeper环境

    一.在Windows 安装ZooKeeper 1.下载ZooKeeper 2.解压,修改ZooKeeper配置文件 复制一份zoo_sample.cfg文件,改名位zoo.cfg,打开编辑,设置数据保 ...

  8. C#远程连接postgresql数据库

    第一次在项目中遇到远程访问postgresql数据库的,当时经常会出现连接数据库的错误,连接字符串出现乱码现象 解决方案 在配置文件中添加连接字符串 <add key="Informa ...

  9. Linux上搭建svn资源库

    一.安装 centos上安装 使用命令svn  --version查看是否安装过svn: 如果出现  bash: svn: command not found  则显示没有安装 可以使用 yum in ...

  10. spark----词频统计(一)

    利用Linux系统中安装的spark来统计: 1.选择目录,并创建一个存放文本的目录,将要处理的文本保存在该目录下以供查找操作: ① cd /usr/local ②mkdir mycode ③ cd ...