一:Python中读写文件的方法

1.open()函数

open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None)

  • file : 是一个 path-like object,表示将要打开的文件的路径,可以是绝对路径也可以是相对路径,也可以是要被封装的整数类型文件描述符。如果是文件描述符,它会随着返回文件对象关闭而关闭,除非 closefd 被设为 False 。
  • mode:文件打开的模式

'r':读取文件(默认)

'w':向文件写入,并先截断文件

'x' 排它性创建 一个文件,如果文件已经存在则失败

'a':在文件末尾追加写入

'b':二进制模式

't':文本模式(默认)

'+':可读也可以写

  • buffering

buffering 是一个可选的整数,用于设置缓冲策略。

  1. 传递0以切换缓冲关闭(仅允许在二进制模式下)
  2. 选择行缓冲(仅在文本模式下可用),
  3. 并且>1的整数以指示固定大小的块缓冲区的大小(以字节为单位)。
  4. 如果没有给出 buffering 参数,则默认缓冲策略的工作方式如下:
  • 二进制文件以固定大小的块进行缓冲;使用启发式方法选择缓冲区的大小,尝试确定底层设备的“块大小”或使用 io.DEFAULT_BUFFER_SIZE。在许多系统上,缓冲区的长度通常为4096或8192字节。
  • “交互式”文本文件( isatty() 返回 True 的文件)使用行缓冲。其他文本文件和二进制文件一样。
  • encoding

encoding 是用于解码或编码文件的编码的名称。仅仅在文本模式下使用。默认编码是依赖于平台的(不管 locale.getpreferredencoding() 返回何值)。

可以使用任何Python支持的 text encoding 。有关支持的编码列表,请参阅 codecs 模块。

例如:

f=open('/Users/michael/notfound.txt', 'r')
f.read()
f.close()

2. with 关键字

在处理文件对象时,最好使用 with 关键字。

优点:

1.当子句体结束后文件会正确关闭,即使在某个时刻引发了异常也能关闭。

2.with 相比等效的 try-finally 代码块要简短得多:

with open('workfile') as f:
read_data = f.read()
f.closed

3.文件对象的方法

f.read(size)

调用f.read(size)读取文件内容,在文本模式下,它会读取一些数据并将其作为字符串返回,在二进制模式下,将数据作为字节串对象返回。

size是一个可选的数值参数。

  • size被省略或者为负数时,将读取并返回整个文件的内容;

如果文件的大小是你的机器内存的两倍就会出现问题。

  • 当取其他值时,将读取并返回至多size个字符(在文本模式下)或size个字节(在二进制模式下)。
  • 如果已到达文件末尾,f.read()将返回一个空字符串 ('')。
>>> f.read()
'This is the entire file.n'
>>> f.read()
''

f.readline()

读取文件的一行。如果到达文件的末尾就返回一个空的字符串。如果读取一个空行,就使用'n'表示,即该字符串只包含一个换行符。

>>> f.readline()
'This is the first line of the file.n'
>>> f.readline()
'Second line of the filen'
>>> f.readline()
''

如果要逐行读取文件,也可以一下方法:

>>> for line in f:
...     print(line, end='')
...
This is the first line of the file.
Second line of the file

f.write(string)

会把 string 的内容写入到文件中,并返回写入的字符数。:

>>> f.write('This is a testn')
15

在写入其他类型的对象之前,在文本模式下,需要先把它们转化为字符串,在二进制模式下,需要先把它们转化为字节对象

>>> value = ('the answer', 42)
>>> s = str(value) # convert the tuple to string
>>> f.write(s)
18

读写2进制文件(图片)

>>> f= open("./440.jpeg",'rb')>>> a=f.read()
>>> len(a)
11024>>> f2=open('./person.jpeg','wb')
>>> f2.write(a)
11024

f.tell()

f.tell() 返回一个整数,给出文件对象在文件中的当前位置,在二进制模式下为从文件开始的字节数,以及文本模式下从文件开始的字符数。

f.seek(offset, whence)

要改变文件对象的位置,请使用 f.seek(offset, whence)。 通过向一个参考点添加 offset 来计算位置;参考点由 whence 参数指定。

  • whence 的 0 值表示从文件开头起算,
  • 1 表示使用当前文件位置,
  • 2 表示使用文件末尾作为参考点。
  • whence 如果省略则默认值为 0,即使用文件开头作为参考点。

注意:在文本文件中,只允许相对于文件开头搜索

2进制文件

>>> f = open('workfile', 'rb+')
>>> f.write(b'0123456789abcdef')
16
>>> f.seek(5)      # Go to the 6th byte in the file
5
>>> f.read(1)
b'5'
>>> f.seek(-3, 2)  # Go to the 3rd byte before the end
13
>>> f.read(1)
b'd'

字符文件

>>> f.write("this is a txtn")
14
#刚写完文件所以在最后一位
>>> f.tell()
15
#读一个字节,为空字符串
>>> f.read(1)
''
#设置文件指针到位置0>>> f.seek(0)
0>>> f.tell()
0
#读一个字符
>>> f.read(1)
't'
>>> f.read(2)
'hi'
>>> f.tell()
3
>>> f.read()
's is a txtn'
>>> f.tell()
15

二:numpy中读写文件的方法

NumPy二进制文件(NPY,NPZ)

在python中有两种二进制文件:npy和npz文件,npy文件保存一个array,npz保存多个array,

并且可以指定关键字,默认的关键字是0,1,2.....

npy文件:

>>> np.save('/tmp/123', np.array([[1, 2, 3], [4, 5, 6]]))
>>> np.load('/tmp/123.npy')
array([[1, 2, 3],[4, 5, 6]])

npz文件:

>>> a=np.array([[1, 2, 3], [4, 5, 6]])
>>> b=np.array([1, 2])
>>> np.savez('/tmp/123.npz', a=a, b=b)
>>> data = np.load('/tmp/123.npz')
>>> data['a']array([[1, 2, 3],[4, 5, 6]])
>>> data['b']
array([1, 2])
>>> data.close()

.npy文件_python——文件读写相关推荐

  1. python读取写入文件_Python文件读写保存操作

    记录下第一次使用Python读写文件的过程,虽然很简单,第一次实现其实也有些注意的事项. 单个文件的读操作: 我们先假设一个需求如下: 读取一个test.txt文件 删除指定字符之前的文本 需求明白之 ...

  2. python 边读边写文件_Python 文件读写

    Python 文件读写 Python内置了读写文件的函数,用法和C是兼容的.本节介绍内容大致有:文件的打开/关闭.文件对象.文件的读写等. 本章节仅示例介绍 TXT 类型文档的读写,也就是最基础的文件 ...

  3. python多进程读同一个文件_python 多进程读写文件

    import time from multiprocessing import Process, JoinableQueue, cpu_count import csv ####处理一条数据的方法 d ...

  4. python可以处理哪些文件_python文件处理

    1.python文件概念 python中文件就是一个对象,而linux中一切设备都可以看成文件,例如:磁盘文件,管道,网络Socket,外设等,都可以使用文件的方式对其进行操作.linux中文件的属性 ...

  5. python在windows 输入和输出文件_Python文件、目录和输入输出操作

    读取键盘的输入 Python提供了input()内置函数从标准输入读入一行文本,默认的标准输入是键盘.input可以接收一个Python表达式作为输入,并将运算结果返回,如下所示: biotest@b ...

  6. python为什么打不开py文件_python文件打不开如何解决

    python中打开文件使用的是open()函数,获取文件对象,之后的操作都是相对于文件对象而言的.f = open('your_file.txt','r') 就可以打开一个文件进行操作.第二个参数为对 ...

  7. python逐行写入文件_Python文件逐行写入

    原博文 2020-03-30 15:52 − 一般情况下我们在利用write函数进行文件的写入的时候,写入的下一个字符串或者数字等会覆盖之前已经写入到文件当中的字符串或者数字,我们如何解决这个问题呢? ...

  8. python能以文本和二进制方式处理文件_Python文件处理之文件写入方式与写缓存(三)...

    Python的open的写入方式有: write(str):将str写入文件 writelines(sequence of strings):写多行到文件,参数为可迭代对象 首先来看下writelin ...

  9. python能封装成exe文件_python文件封装成*.exe文件(单文件和多文件)

    环境:win10 64位  python3.7 单*.py文件打包 Python GUI:程序打包为exe 一.安装Pyinstaller,命令pip install Pyinstaller,(大写的 ...

  10. android读取excel文件_python里读写excel等数据文件的几种常用方式

    python处理数据文件第一步是要读取数据,文件类型主要包括文本文件(csv.txt等).excel文件.数据库文件.api等. 下面整理下python有哪些方式可以读取数据文件. 1. python ...

最新文章

  1. 出现这四种情况,才是考虑分库分表的时候!
  2. MyEclipse或者Eclipse内存溢出问题
  3. windows无法连接到打印机 操作失败,错误为0x00000002 解决方案
  4. sublime3配置pythonIDE
  5. 分数四则运算_JAVA
  6. Ubuntu 16.04下Caffe-SSD的应用(七)——制作自己的VOC2007数据集
  7. 自由自在意式手工冰淇淋式的生活方式
  8. html语言循环语句,Scala @功能/语言的HTML文档 - for循环,如果语句等
  9. CVPR2019目标分割论文推荐(附论文及代码链接)
  10. python3扫雷代码_python3 命令行 扫雷
  11. 自适应方案比较及案例
  12. vue el-select 默认选中
  13. linux 怎么在pe下安装驱动程序,【教程】再谈“万能驱动7在PE下安装驱动”功能...
  14. BAT批处理文件 一键开启卓越性能电源计划方案
  15. 梦熊杯-十二月月赛-白银组题解-A.自由
  16. 从输入域名,到拿到首页的所有细节过程
  17. 服务器磁带断带修复,易备磁带版:安全合规、功能超群–Windows服务器的磁带备份软件...
  18. MySQL sum()函数
  19. matlab 点顺时针排序,算法 – 按顺时针顺序排序点?
  20. mysql数据初识_1、初识mysql数据库

热门文章

  1. 最终幻想OL(FF14)分析 - 基本数据
  2. 大数据丨网络爬虫技术总结
  3. QXDM 存储log的方法
  4. 富友支付富掌柜智能收银系统是怎样的一套系统
  5. 手摸手深入理解JVM虚拟机--在MacOS系统上编译OpenJDK12并使用CLion调试靠谱教程
  6. uniapp 打包H5自定义模板
  7. html mht word,mht格式怎么转换成word
  8. 免费又好用的Redis客户端工具!AnotherRedisDesktopManager
  9. JAVA常用的七种设计模式
  10. 固态硬盘故障检测_有哪些好用的检测软件是用于判断固态硬盘故障的?