博客
关于我
七.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/

你可能感兴趣的文章
Objective-C实现argmax函数功能(附完整源码)
查看>>
Objective-C实现arithmetic算术算法(附完整源码)
查看>>
Objective-C实现armstrong numbers阿姆斯壮数算法(附完整源码)
查看>>
Objective-C实现articulation-points(关键点)(割点)算法(附完整源码)
查看>>
Objective-C实现atoi函数功能(附完整源码)
查看>>
Objective-C实现average absolute deviation平均绝对偏差算法(附完整源码)
查看>>
Objective-C实现average mean平均数算法(附完整源码)
查看>>
Objective-C实现average median平均中位数算法(附完整源码)
查看>>
Objective-C实现average mode平均模式算法(附完整源码)
查看>>
Objective-C实现avl 树算法(附完整源码)
查看>>
Objective-C实现AvlTree树算法(附完整源码)
查看>>
Objective-C实现backtracking Jump Game回溯跳跃游戏算法(附完整源码)
查看>>
Objective-C实现BACKTRACKING 方法查找集合的幂集算法(附完整源码)
查看>>
Objective-C实现bailey borwein plouffe算法(附完整源码)
查看>>
Objective-C实现balanced parentheses平衡括号表达式算法(附完整源码)
查看>>
Objective-C实现base64加密和base64解密算法(附完整源码)
查看>>
Objective-C实现base64加解密(附完整源码)
查看>>
Objective-C实现base64编码 (附完整源码)
查看>>
Objective-C实现base85 编码算法(附完整源码)
查看>>
Objective-C实现basic graphs基本图算法(附完整源码)
查看>>