读文件:

f = open('/Users/michael/test.txt', 'r')
#一次读取文件的全部内容
f.read()
#文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的
close()
#考虑异常,无论是否出错都能正确地关闭文件
try:
f = open('/path/to/file', 'r')
print(f.read())
finally:
if f:
f.close()
#等价于 with语句来自动帮我们调用close()方法
with open('/path/to/file', 'r') as f:
print(f.read()) #二进制文件
f = open('/Users/michael/test.jpg', 'rb') #字符编码
#要读取非UTF-8编码的文本文件,需要给open()函数传入encoding参数,例如,读取GBK编码的文件:
f = open('/Users/michael/gbk.txt', 'r', encoding='gbk') #遇到有些编码不规范的文件,你可能会遇到UnicodeDecodeError,直接忽略
f = open('/Users/michael/gbk.txt', 'r', encoding='gbk', errors='ignore'

写文件:
#传入标识符'w'或者'wb'表示写文本文件或写二进制文件
f = open('/Users/michael/test.txt', 'w')
f.write('Hello, world!')
f.close() #要写入特定编码的文本文件,请给open()函数传入encoding参数
with open('/Users/michael/test.txt', 'w') as f:
f.write('Hello, world!')

最好使用with语句

StringIO和BytesIO是在内存中操作str和bytes的方法,使得和读写文件具有一致的接口

StringIO和BytesIO

str的读取:

#写入字符串
from io import StringIO
f = StringIO()
f.write(''Hello!\nHi!\nGoodbye!'') #getvalue()方法用于获得写入后的str
print(f.getvalue())
#或者行读
while True:
s = f.readline()
if s == '':
break
print(s.strip())
#结果
Hello!
Hi!
Goodbye!

二进制的读取:

from io import BytesIO
#写
f = BytesIO()
#经过UTF-8编码的bytes
f.write('中文'.encode('utf-8'))
print(f.getvalue())
#结果
b'\xe4\xb8\xad\xe6\x96\x87 #读
f = BytesIO(b'\xe4\xb8\xad\xe6\x96\x87')
f.read()
#结果
b'\xe4\xb8\xad\xe6\x96\x87'

python文件,字符串,二进制的读写的更多相关文章

  1. Python文件的几种读写方式

    1). "w "写模式,它是不能读的,如果用w模式打开一个已经存在的文件,会清空以前的文件内容,重新写 "w+ "是读写内容,只要沾上w,肯定会清空原来的文件2 ...

  2. Python文件的四种读写方式——r a w r+

    # 文件的基本操作,但是一般不这么使用,因为经常会忘记关闭 password=open("abc.txt",mode="r",encoding="UT ...

  3. Python第五天 文件访问 for循环访问文件 while循环访问文件 字符串的startswith函数和split函数 linecache模块

    Python第五天   文件访问    for循环访问文件    while循环访问文件   字符串的startswith函数和split函数  linecache模块 目录 Pycharm使用技巧( ...

  4. Python文件读写、StringIO和BytesIO

    1 IO的含义 在计算机中,IO是Input/Output的简写,也就是输入和输出. 由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就 ...

  5. python文件操作之二进制

    列表项 三元运算符号: a=3 b=7 val=a if a>b else val=b print(val) 文件处理 首先给你一个文件,或者自己建立一个文件,那如何查看文件的内容呢? 1.安装 ...

  6. 【8】python文件的读写方法

    (1).读文件的步骤: (1)打开文件 open(path,flag,encoding,[errors]) path:打开路径 flag:打开方式 r(只读) rb(二进制格式) r+(可以读写) w ...

  7. Python 文件读写操作实例详解

    Python提供了必要的函数和方法进行默认情况下的文件基本操作.你可以用file对象做大部分的文件操作 一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法.1.得到当前 ...

  8. python文件的读写总结

    读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘, ...

  9. 一篇搞懂python文件读写操作(r/r+/rb/w/w+/wb/a/a+/ab)

           关于文件操作的几种常用方式,网上已有很多解说,内容很丰富,但也因此有些杂乱复杂.今天,我就以我个人的学习经验写一篇详细又易懂的总结文章,希望大家看完之后会有所收获. 一.核心功能 ‘r’ ...

  10. python文件读写小结

    读文件 打开一个文件用open()方法(open()返回一个文件对象,它是可迭代的): >>> f = open('test.txt', 'r') r表示是文本文件,rb是二进制文件 ...

随机推荐

  1. document.URL 和 windows.location.href的区别

    1. 从输出结果上,document.URL 和 windows.location.href 没有区别.2. 非要说区别的话,你只可以读取document.URL的值,不能修改它.windows.lo ...

  2. C++ Knowledge series Conversion & Constructor & Destructor

    Everything has its lifecycle, from being created to disappearing. Pass by reference instead of pass ...

  3. Sigrity PowerDC是如何计算IR Drop Margin?

    IR Drop仿真是一个系统层面的问题,需要考虑完整的Power Distribution System(PDS)链路上所有压降,并以此来优化每颗器件所接收到的供电电压. 在设计设计中所有的电源供电芯 ...

  4. 监控系统-mod-gearman

    doc http://labs.consol.de/nagios/mod-gearman/ 安装 yum -y install gearmand-server-0.33-2.rhel6.x86_64. ...

  5. Linux vi 常用指令总结

    本文根据笔者,日常常用的linux下的vi指令,进行说明 一.基本操作 1.vi 文件名 进入vi 的“命令行模式”,此模式无法编辑,只能查看 需要按下键盘的“i”键,进入“编辑模式”,才能进行文件的 ...

  6. centos 卸载 docker

    yum list installed | grep docker //查看安装过的包 docker-engine.x86_64                 17.03.0.ce-1.el7.cen ...

  7. 如何获得C4C里某个code字段对应的描述信息

    通过我这篇文章介绍的方法使用C4C OData服务去取服务订单数据(Sales Order): 如何用代码的方式取出SAP C4C销售订单创建后所有业务伙伴的数据 https://www.jiansh ...

  8. 深搜,四色定理,(POJ1129)

    题目链接:http://poj.org/problem?id=1129 解题报告: #include<iostream> #include<cstdio> #include&l ...

  9. python 合并字符串

    [root@chenbj python]# cat name.py #!/usr/bin/env python # _*_ coding:utf-8 _*_ first_name = "ch ...

  10. Laravel5 构造器高级查询条件写法

    <?php #DB 高级查询 // select * from table where A and B or C $all_data = DB::table("shopnc_goods ...