Python 文件操作

Posted cyx-12

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 文件操作相关的知识,希望对你有一定的参考价值。

1.  open()  file.close()

# 关闭后的文件不能再进行读写操作,否则会触发ValueError
fo = open(a.txt, r)
print(打开a.txt的文件)
fo.close()

 

 

2.  flush()

# flush()用来刷新缓冲区,将缓冲区的数据立刻写入文件
# 同时清空缓冲区,不需要是被动的等待输出缓冲区写入
# 一般情况,文件关闭后会自动刷新缓冲区,但有时需要在关闭前刷新它,这时就需要使用flush()方法
fo =open(a.txt, wb)
print(打开a.txt的文件)
fo.flush()
fo.close()

 

 

3.  打开文件的模式

  ①. 只读模式 r (默认)

  ②. 只写模式 w (不可读,不存在则创建,存在则覆盖)

  ③. 追加模式 a (可读,不存在则创建,存在则只追加内容)

  ④. ‘+‘ 表示可同时读写某个文件:

    r+ 可读写文件(可读、可写、可追加)

    w+ 写读

    a+ 追加

  ⑤. ‘u’表示在读取时,可将     自动转换成 (与 r 或者 r+ 模式同时使用)

   因为Windows系统的换行符为 ,Linux系统的换行符为 , 加上u则能自动把 转换成

    ru

    r+u

  ⑥. ‘b’ 表示处理二进制文件

    rb

    wb

    ab

 

4.

# # 读取文件内容(可指定每次读取字符数)
# with open(‘a.txt‘, ‘r+‘, encoding=‘utf-8‘) as f:
#     ret = f.read(8)
#     print(ret)

 

 

5.

# 读取数据(可指定读取字符数),存为list显示
# f = open(‘b.txt‘, ‘r+‘, encoding=‘utf-8‘)
# ret = f.readlines()
# print(ret)
# f.close()

 

 

6.

# # 读取一行数据
# f = open(‘b.txt‘, ‘r+‘, encoding=‘utf-8‘)
# ret = f.readline()
# print(ret)
# f.close()

 

 

7.

# 判断文件是否可读(不可读则报错“No such file or directory:”)
f = open(b.txt, r+, encoding=utf-8)
ret = f.readable()
print(ret)
f.close()

 

 

8.

# 获取指针位置
f = open(b.txt, r+, encoding=utf-8)
# 先读取8个字符
ret = f.read(8)
# 查看当前指针位置
print(pointer position: %s %f.tell())
print(ret)
# 重置指针到起始位
f.seek(0)
# 查看指针当前位置
print(pointer position: %s %f.tell())
f.close()

 

 

9.

# 指定文件中指针位置
f = open(b.txt, r+, encoding=utf-8)
# 先读取8个字符
ret = f.read(8)
print(ret)
# 重置指针到起始位
f.seek(0)
# 在重新读取8个字符
ret = f.read(8)
print(ret)
f.close()

 

 

10.

# 截取文件数据,仅保留指定之前数据(指定字节数)
f = open(b.txt, r+, encoding=utf-8)
# 文件只保留前8个字节数据,文件后面的数据全部删除
f.truncate(8)
ret = f.read()
print(ret)
f.close()

 

 

11.  fileno()

# fileno()返回一个整型的文件描述(file desccriotor FD 整型)
# 可用于底层操作系统的I/O操作
fo = open(b.txt, wb)
print(文件名为:,fo.name)
fid = fo.fileno()
print(文件描述为:,fid)
fo.close()

 

 

12.  isatty()

# isatty()检测文件是否连接到一个终端设备
# 如果是返回True,否则返回False
fo = open(b.txt, wb)
print(文件名为:,fo.name)
ret = fo.isatty()
print(返回值:,ret)
fo.close()

 

 

13.  next()

# Python3中的file对象不支持next()方法
# Python3的内置函数next()通过迭代器调用__next()__方法返回下一项
# 在循环中,next()方法会在循环中调用,该方法返回文件的下一行
# 如果到达结尾(EOF)则触发Stopiteration
fo = open(b.txt, r)
for index in range(5):
    line = next(fo)
    print(第%d行 - %s%(index, line))

 

 

 

以上是关于Python 文件操作的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记:python3,代码片段(2017)

常用python日期日志获取内容循环的代码片段

VSCode自定义代码片段——git命令操作一个完整流程

使用 Python 代码片段编写 LaTeX 文档

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程