Python文件对象

文件系统和文件

1,文件系统是OS 用于明确磁盘或分区上的文件的方法和数据结构——即在磁盘上组织文件的方法

2,计算机文件(或称文件,电脑档案,档案),是存储在某种长期存储设备或临时存储设备中的一段数据流,并且归属于计算机文件系统管理下

概括来讲

1,文件是计算机中由OS 管理的具有名字的存储区域

2,在linux 系统上,文件被看做是直接序列

3,Python内置函数open()用于打开文件和创建文件对象
。open(name[,mode[,bufsize]])

4,open 方法可以接收三个参数:文件名,模式和缓冲区参数

1),open函数返回的是一个文件对象
2),mode:指定的打开模式
3),bufsize:定义输出缓存
      0,表示无输出缓存
      1,表示使用缓冲
      2,负数表示使用系统默认设置
      3,正数表示使用近似指定大小的缓冲

5,简单模式
1),r:只读
open(’/var/log/message.log’,‘r’)
w:写入
a:附加

6,在模式后使用"+"表示同时支持输入,输出操作
1),如 r+ 、 w+ 、和a+

7,在模式后附加"b"表示以二进制方式打开
2),如rb 、 wb+

比如:var_name = open (file_name[mode,[bufsize]])
mode:
r
w
a
r+(读入)
w+(写入) 默认可以自动创建文件/已存在文件,会将已存在文件进行覆盖
a+ () 默认可以自动创建文件
b表示以二进制模式打开文件:
rb
wb
ab
rb+
wb+
ab+
缓冲:
0:禁用
负数:使用系统默认缓冲
1:使用缓冲,只缓冲一行数据
2+:指定缓冲空间大小

file.seek(offset[whence])
whence:起点
0:从文件头
1:从当前位置
2:从文件尾部
offset:偏移量

使用 保存结构化数据:
JSON(JavaScript Object Notation):
调用标准模块json可以采用Python数层次结构,并将它们转换为字符串表示形式;这个过程为序列化。从字符串表中重建数据成为反序列化。在序列化和反序列化之间,表示对象的字符串可能已存储在文件或数据中,或通过网络连接发送到某个远程机器。

json.dumps() 是将一个字典/列表转换为字符串
     json.dump() 是将字符串存放到文本文件中
     json.dump('str',文本文件名称)

例如:
In [20]: f1 = open(‘programming.txt’,‘w’)

         In [24]: json.dump('I love Python',f1) 

json.loads() 是将str转换成dict/列表格式

json.dumps 与 json.loads()是一个相互逆反的过程!

注意:如果 通过json.dumps(‘元组’) 也是会变成 str 字符串类型
但是通过json.loads(’’) 后,会转换为列表[list]数据类型
使用json.dump()和json.load()
import json
numbers = [2,3,5,7,11,13]

filename = ‘numbers.json’

In [41]: with open(filename,‘w+’) as f_obj:
…: json.dump(numbers,f_obj)
…: f_obj.seek(0)
…: x1 = f_obj.read()
…: print(x1)

其中dump 是把序列化后的字符串写到一个文件中,而load是从一个一个文件中读取数据!
Pickle - 泡菜模块:
pickle是一种允许对任意复制Python对象进行序列化的协议。因此,它特定于Python,不能用于其他语言编写的引用程序通信。默认情况下它也是不安全的;

pickle.dump(’’,)
需要使用二进制方式写入文件,然后需要读的时候需要rb

f1 = open(’’,wb)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值