博客
关于我
七.Python文件操作
阅读量:325 次
发布时间:2019-03-04

本文共 2149 字,大约阅读时间需要 7 分钟。

Python文件操作指南

文件操作基础

在Python中,文件操作是日常编程中常用的功能之一。通过合理使用文件操作,可以实现文件的读取、写入、追加以及修改等操作。了解文件操作的权限和编码格式是进行文件操作的重要前提。

文件权限

文件权限决定了你对文件的操作方式。常见的权限包括:

  • 读权限 (r): 只能读取文件内容
  • 写权限 (w): 可以向文件中追加内容(注意:如果文件不存在,w权限会自动创建新文件)
  • 追加权限 (a): 只能向文件中追加内容,不能修改已有内容
  • 读写权限 (r+): 可以读取和追加文件内容
  • 读写及修改权限 (w+): 可以读取、写入和修改文件内容
  • 可读可写权限 (a+): 可以读取、追加内容(如果文件不存在,会自动创建)

读取文件

读取文件是最常见的文件操作之一。可以使用以下方法:

# 打开文件并读取内容f = open("a", "r", encoding="utf-8")print(f.read())  # 读取整个文件内容print(f.readline())  # 逐行读取文件内容print(f.readable())  # 判断文件是否可读f.close()  # 关闭文件

写入文件

写入文件可以通过以下方式实现:

# 打开文件并准备写入内容f = open("a", "w", encoding="utf-8")print(f.writable())  # 判断文件是否可写f.write("Hello World!")  # 将内容写入文件f.close()

追加文件内容

追加写入文件是写入操作的一种高级功能。可以通过以下方法实现:

# 打开文件追加写入内容f = open("a", "a", encoding="utf-8")f.write("\n11111")  # 追加一行内容f.writelines(["\nhahhaha", "1111"])  # 将列表中的每个元素作为一行写入文件f.close()

修改文件

有时候需要对文件进行修改操作,比如清除空白行或换行符。可以通过以下方式实现:

# 打开文件进行修改f = open("a", "r+", encoding="utf-8")lines = f.readlines()  # 读取所有行内容line = []for i in lines:    line.append(i.replace("\n", ""))print(line)f.writelines(line)  # 将修改后的内容写入文件f.close()

文件操作高级功能

除了基础的文件操作,Python还提供了更多高级功能可以帮助开发者更方便地操作文件。

编码格式

文件编码格式的设置对于正确读取和写入文件内容至关重要。可以通过以下方式设置编码格式:

# 写入文件时设置编码格式f = open("a", "wb")f.write("Hello World!".encode("utf-8"))f.close()
# 读取文件时设置编码格式f = open("a", "rb")con = f.read()print(type(con))  # 输出:
print(con.decode("utf-8")) # 解码后的字符串f.close()

flush()

flush() 方法用于立即将文件缓冲区内容写入磁盘,避免数据丢失。

# 使用 flush() 方法f = open("a", "wb")f.write("aaa".encode("utf-8"))f.flush()f.close()

tell() 和 seek()

tell() 方法返回文件当前的位置,seek() 方法用于移动文件读取或写入的位置。

# 使用 tell() 和 seek() 方法f = open("a", "rb")print(f.tell())  # 输出:
<编号>
print(f.read()) # 读取文件内容print(f.tell()) # 输出:
<新的编号>
f.close()
# 使用 seek() 方法移动位置f = open("a", "rb")print(f.read().decode("utf-8"))  # 读取当前位置的内容f.seek(1, 0)  # 移动到第 2 位print(f.read().decode("utf-8"))  # 读取移动后的内容f.close()

truncate()

truncate() 方法可以截断文件的大小。

# 截断文件f = open("a", "r", encoding="utf-8")print(f.name)  # 文件名print(f.read())  # 文件内容f.close()

文件名称获取

可以通过 f.name 属性获取文件的名称。

# 获取文件名f = open("a", "r", encoding="utf-8")print(f.name)  # 输出:
<文件名>
f.close()

通过以上方法,开发者可以更高效地进行文件操作,从而提升代码的性能和可维护性。

转载地址:http://avnq.baihongyu.com/

你可能感兴趣的文章
Netty框架的服务端开发中创建EventLoopGroup对象时线程数量源码解析
查看>>
Netty源码—2.Reactor线程模型一
查看>>
Netty源码—4.客户端接入流程一
查看>>
Netty源码—4.客户端接入流程二
查看>>
Netty源码—5.Pipeline和Handler一
查看>>
Netty源码—6.ByteBuf原理二
查看>>
Netty源码—7.ByteBuf原理三
查看>>
Netty源码—7.ByteBuf原理四
查看>>
Netty源码—8.编解码原理二
查看>>
Netty源码解读
查看>>
Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
查看>>
Netty相关
查看>>
Network Dissection:Quantifying Interpretability of Deep Visual Representations(深层视觉表征的量化解释)
查看>>
Network Sniffer and Connection Analyzer
查看>>
NetworkX系列教程(11)-graph和其他数据格式转换
查看>>
Networkx读取军械调查-ITN综合传输网络?/读取GML文件
查看>>
Net与Flex入门
查看>>
net包之IPConn
查看>>
NFinal学习笔记 02—NFinalBuild
查看>>
NFS共享文件系统搭建
查看>>