IO在计算机中指Input/Output,也就是输入和输出。

1、文件读写,
1,读文件【使用Python内置函数,open,传入文件名标示符】

>>> f = open('/Users/michael/test.txt', 'r')

标示符‘r’代表 读。

如果文件打开成功,调用read()方法可以一次读取文件的全部内容,Python把内容读到内存,用

一个str对象表示:

>>> f.read()
'Hello, world!'

最后文件读取完毕调用 close 关闭文件

2,

try:
f = open('/path/to/file', 'r')
print(f.read())
finally:
if f:
f.close()
另一种try catch
with open('/path/to/file', 'r') as f:
print(f.read())

3,StringIO就是在内存中创建的file-like Object,常用作临时缓冲。
4,二进制文件:
读取二进制文件时,只需修改 标示符为 ‘rb’
5,字符编码
读取非UTF-8编码的文件,只需open 传入参数 encoding='gbk'

>>> f = open('/Users/michael/gbk.txt', 'r', encoding='gbk')
>>> f.read()

'测试'
编码太乱可以选择直接忽略

>>> f = open('/Users/michael/gbk.txt', 'r', encoding='gbk', errors='ignore')

6,写文件
只是修改 标示符 ‘r’,‘rb’ 为 'w','wb'

with语句操作文件【因为try那种太繁琐了】

with open('文件路径名','w',encoding='gbk') as f:
f.write('你好!')

2、StringIO和BytesIO
1,StringIO 内存中读写str

>>> from io import StringIO
>>> f = StringIO()
>>> f.write('hello')
5

2,BytesIO顾名思义读写字节的操作在内存

StringIO和BytesIO操作内存中的str和bytes,使用相同的接口。
3、操作系统文件和目录

>>>import os
>>>os.name
'posix'//linux
'nt' //windows
>>>os.uname()

//更详细的操作系统信息

操作文件和目录,查看,创建,删除,
目录很文件的分割, os.path.split('文件路径/a.txt')

4、序列化
内存到硬盘。
对象到字节。
dict转JSON【json.dumps(d)】

>>> import json
>>> d = dict(name='Bob', age=20, score=88)
>>> json.dumps(d)
'{"age": 20, "score": 88, "name": "Bob"}'

JSON转dict【json.loads(json_str)】

>>> json_str = '{"age": 20, "score": 88, "name": "Bob"}'
>>> json.loads(json_str)
{'age': 20, 'score': 88, 'name': 'Bob'}

注意,如果要把自定义类装换为JSON需要定义个函数

def student2dict(std):
return {
'name': std.name,
'age': std.age,
'score': std.score
}

【Python】[IO编程]文件读写,StringIO和BytesIO,操作文件和目录,序列化的更多相关文章

  1. python IO编程-StringIO和BytesIO

    链接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319187857 ...

  2. Python IO编程-读写文件

    1.1给出规格化得地址字符串,这些字符串是经过转义的能直接在代码里使用的字符串 需要导入os模块 import os >>>os.path.join('user','bin','sp ...

  3. Python IO编程-组织文件

    对于日常中遇到的批量任务,有些可以通过请求python完成自动化,我非常渴望拥有这些能力,在去年学习了python读写文件之后,我马上迫不及待的开始学习‘组织文件’,经过学习,我发现python组织文 ...

  4. Python IO编程

    IO在计算机中指Input/Output,也就是输入和输出 一.文件读写 1.读文件 >>> f = open('/Users/michael/test.txt', 'r') --- ...

  5. Python基础笔记系列十一:标准输入输出、文件读写和指针等操作

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 标准输入输出一.输入 在sublime中这个时候需要安装SublimeRE ...

  6. [python IO学习篇]补充打开中文路径的文件

    http://blog.csdn.net/mottolinux/article/details/525600621 关于Python编码的基本常识 在python里面 “明文”是unicode类型和s ...

  7. python第二十九课——文件读写(写数据的操作)

    演示写数据的操作: 结论:往文件中写入数据,如果文件不存在,先创建文件,再写入内容 #1.打开文件 fw=open(r'd.txt','w',encoding='utf-8') #2.写数据操作 fw ...

  8. [19/04/04-星期四] IO技术_CommonsIO(通用IO,别人造的轮子,FileUtils类 操作文件 & IOUtilsl类 操作里边的内容 )

    一.概念 JDK中提供的文件操作相关的类,但是功能都非常基础,进行复杂操作时需要做大量编程工作.实际开发中,往往需要 你自己动手编写相关的代码,尤其在遍历目录文件时,经常用到递归,非常繁琐. Apac ...

  9. Python学习笔记(二十五)操作文件和目录

    摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319253241 ...

  10. Win8 Metro中文件读写删除与复制操作

    Win8Metro中,我们不能在向以前那样调用WIN32的API函数来进行文件操作,因此,下面就来介绍一下Win8 Metro中文件的读写操作. 1 Windows 8 Metro Style App ...

随机推荐

  1. 用VSCode写python的正确姿势(转载)

    最近在学习python,之前一直用notepad++作为编辑器,偶然发现了VScode便被它的颜值吸引.用过之后发现它启动快速,插件丰富,下载安装后几乎不用怎么配置就可以直接使用,而且还支持markd ...

  2. 谈谈iOS app的线上性能监测

    在移动端开发者中最重要的KPI应该是崩溃率.当崩溃率稳定下来后,工作的重心就应该转移到性能优化上.那么问题来了,如果你的项目也没有接入任何性能监测SDK,没有量化的指标来衡量,那你说你优化了性能领导信 ...

  3. 解决:eclipse删除工程会弹出一个对话框提示“[project_name]”contains resources that are not in sync with"[workspace_name...\xx\..xx\..\xx]"

    提示“[project_name]”contains resources that are not in sync with"[workspace_name...\xx\..xx\..\xx ...

  4. java中文件的I/O操作

    java中文件的读写操作 (一) (1)java中文件的字节转成字符读操作 FileInputStream fStream = new FileInputStream("test.txt&q ...

  5. AIDL使用解析

    简书本文地址:点击跳转到简书查看 之前面试的时候被问到这个问题,然而当时只有一个大致的印象,随GG,于是我就重新整理的一下.这里大力推荐<Android开发艺术探索>这本书,写的太好了! ...

  6. 设置ASP.NET MVC站点默认页为.html页 .

    同事部署了一个Asp.Net MVC的站点,希望它的默认页是index.html页,在vs2010中给站点根目录增加了index.html,然后调用没有什么问题,但部署到IIS7上,在功能试图=> ...

  7. [Oracle]快速插入大量(100w)数据

    背景:无论在开发调试或者软件测试中,测试数据的准备是调试/测试执行前重要和必要的一个环节,因此以下几种方式可以快速插入大量数据: 第一种方法: declare   -- Local variables ...

  8. centos为用户增加ssh key

    linux增加用户,为用户增加key 可以用  ssh-keygen -t rsa 添加ssh的key,会得到public_key和自己的private_key 然后这个key可以用在任何用户上 ad ...

  9. 使用PhoneGap开启移动开发之旅

    移动市场风起云涌,只是好像和悲催的.net程序员隔绝.我们内心中一直期待的Windows Phone终究不能匹及windows, 随着时间的流逝,windows phone越来越像扶不起的阿斗,连微软 ...

  10. TNS-12540: TNS:internal limit restriction exceeded

    应用程序以及客户端工具(Toad.PL/SQL Developer等)出现突然连接不上数据库服务器的情况,监听日志listener.log里面出现了TSN-12518与TSN-12540错误,如下所示 ...