美文网首页
Python之文件操作

Python之文件操作

作者: EchoPython | 来源:发表于2019-07-22 20:16 被阅读0次

说到文件操作,我们就想到了读写操作,在python中对于文件操作就是读和写,访问文件的模式有两种,文本模式和二级制模式。

1.文件打开

# 现创建一个hello.txt文件,然后加入内容hello world
f = open(file='./hello.txt')
result = f.read()
print(result )  #输出: hello world
f.close()

如果你依然在编程的世界里迷茫,
不知道自己的未来规划,
对python感兴趣,
这里推荐一下我的学习交流圈QQ群:895 797 751,
里面都是学习python的,

  • 打开文件会用到open()函数,语法为:open(name[,mode[,buffering]]);
  • open函数()的文件名是必须的,而模式和缓冲参数都是可选的;

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

  • buffering:是指缓冲大小,-1表示默认大小4096,0表示关闭缓冲区, encoding表示编码方式,None表示默认的编码方式;

  • errors:表示编码错误被捕获,如果是errors=ignore,那么出现编码错误将会被忽略;

  • newline:表示文件换行的意思;

  • closefd:表示是否关闭文件时同时关闭文件描述符;

2.mode模式参数常用值有哪些

  • 'r':只读;
  • 'w':只写,从开头开始写,所以会覆盖文件的内容;
  • 'a':追加,不会覆盖文件内容;
  • 'x':只写,如果文件不存在则创建文件,以只写方式打开文件,保护写;
  • 'b':二进制;
  • 't':文本,是默认的模式,可以不写,一般都是以文本模式打开文件;
  • '+':读写;
  • 'r+':给只读赋予写的能力;
  • 'w+':给只写赋予只读的能力,因为是以只写的形式打开文件,会清空文件内容,所以不能读取到内容,只是有了读的功能;

3.文件读取

f = open(file='./hello.txt',mode='w')
result = f.read()
print(result) # hello world

f.write('a')  # 如果写入则会报错,因为此时是只读模式
#
result1 = f.read(3)  # 表示文件读三个字节,不给值表示直接读到EOF
print(result1) # hel

f.close() # 读取完文件一定要关闭

  • 读取文件会用到read()函数,用于从文件中读取指定的字符数,如果未给定或为负值则表示读取所有字符;
  • 如果文件非常大,尤其是大于内存时,无法使用read()方法;

4.文件写入

  • w,x,a都是只写,t模式是字符流,按照字符编码理解,b是字节流,字节操作是bytes类型;

    • 无法单独使用,用来增强r,w,x,a等功能,但是在获取文件对象是依然是本身的特性;
  • w为只写模式

f = open(file='./hello.txt', mode='w')
f.write('a')
f.read() # 此时读就会报错
f.close()

# x是只写,文件不存在,创建文件,以只写方式打开
f = open('./test.txt', 'x')
# f.read() # 此时读会报错
f.write('a')
f.close()

# a只写,文件存在,追加内容,文件不存在,只写,追加内容
f = open('./test1.txt', 'a')
# f.read() # 此时读会报错
f.write('aaa')
f.close()

5.文件指针

f = open('hello.txt', 'r+')
print(f.tell()) # 文件的起始位置 0
print(f.read()) # 读文件所有的内容
print(f.tell()) # EOF,也就是最后一个字符是几
print(f.seek(3)) # 偏移两个字节
print(f.read())
f.close()

f = open('test.txt', 'rb+')
print(f.tell()) # 文件的起始位置0
print(f.read()) # 读文件所有的内容
print(f.tell()) # EOF,也就是最后一个字符
print(f.seek(2)) # 偏移两个字节
print(f.read())

f.write(b'ni hao')
f.seek(2,2) # 二级制模式下,seek(offset, whence=0) 可以给whence传递1, 2 或 0, 0表示文件从头开始, 1表示从当前位置开始,2表示从文件末尾EOF开始
f.seek(1,1)
f.write(b'ni hao')
f.flush() # 将缓存刷新到文件
f.write(b'ni hao')
f.close() # 文件句柄关闭的时候,会将缓存刷新到文件
  • mode为r的时候,指针的起始点在0;
  • mode为a的时候,指针的起始点在EOF,文件末尾;
  • tell()函数:显示指针的当前位置;
  • seek()函数:移动文件指针的位置,参数offset指的是偏移的字节;
  • flush()函数:将缓存刷新到文件;
  • close()函数:关闭文件;

6.文件行读取

import io
f = open('hello.txt', 'r+')
print(io.DEFAULT_BUFFER_SIZE) # 8192
print(f.readline(), '第一行')  # 读取一行
print(f.readline(), '第二行')
print(f.readlines())          # 读取所有行,且返回列表

  • readline() 函数用于从文件读取整行(包括 "\n" 字符),如果指定了一个非负数的参数,则返回指定大小的字节数(包括 "\n" 字符);
  • readlines() 函数用于读取所有行,且返回值为列表形式;

7.open 文件上下文管理器

with open('test.txt',mode='w') as f:
    f.write('nihao')
    
如果你依然在编程的世界里迷茫,
不知道自己的未来规划,
对python感兴趣,
这里推荐一下我的学习交流圈QQ群:895 797 751,
里面都是学习python的,
  • 使用with 关键字来实现上下文管理器;
  • 通过上下文管理的方式打开文件,在文件末尾会自动执行关闭语句,不需要写f.close()来关闭文件了;

相关文章

  • 14.Python之文件操作

    Python之文件操作 文件操作通过Python中的内置函数open()对文件进行操作。文件操作需要如下几个参数:...

  • Python 入门之文件

    Python 入门之 文件 1、文件操作 找到文件位置 双击打开 进行一些操作 r—read(读) w—write...

  • python_对文件的处理

    !取前辈之精华,武装自己 python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。...

  • 第二节课:Python 操作文件 ——软件测试派

    学习目标:掌握 python 操作文件 python 提供内置函数 open()实现对文件的操作。 python ...

  • Python之文件操作

    author = "jolting" date = "2018-03-20" 读写文件是最常见的IO操作,pyth...

  • Python之文件操作

    文件读写 文件读写是最基本的IO操作,在Python中内置了open函数来用于文件的读写操作,此函数创建一个文件对...

  • Python之文件操作

    说到文件操作,我们就想到了读写操作,在python中对于文件操作就是读和写,访问文件的模式有两种,文本模式和二级制...

  • python之文件操作

    1 创建 Python 使用 open() 函数创建或打开文件,语法格式如下所示: 参数说明如下所示: file:...

  • 孤荷凌寒自学python第三十五天python的文件操作之针对文

    孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录...

  • python对系统文件操作

    举个例子:python操作系统文件目录,将网络上下载下来的内容保存到硬盘的文件里。 python之os模块:# 1...

网友评论

      本文标题:Python之文件操作

      本文链接:https://www.haomeiwen.com/subject/radglctx.html