菜鸡前端计算机强基计划之CS50 第七课 python 入门—— Python 中文件操作专题学习
菜鸡前端计算机强基计划之CS50 第七课 python 入门—— Python 中文件操作专题学习
- Python 文件操作与目录操作学习指南
- 1. 文件的基本概念
- 常见模式:
- 示例:
- 2. 打开文件
- 示例:
- 3. 文件读取
- 示例:
- 4. 文件写入
- 示例:
- 5. 文件关闭
- 示例:
- 6. 文件指针
- 示例:
- 7. 文件编码
- 示例:
- 8. 实用技巧
- 8.1 处理大文件
- 示例:
- 8.2 检查文件是否存在
- 示例:
- 9. 目录操作
- 9.1 列出目录内容
- 示例:
- 9.2 检查目录是否存在
- 示例:
- 9.3 创建目录
- 示例:
- 9.4 删除目录
- 示例:
- 9.5 删除非空目录
- 示例:
- 9.6 重命名目录
- 示例:
- 10. 总结
不想做菜鸡了,痛下决心补习计算机基础知识。花两到三年时间完成 路线图 中的课程。祝我成功
Python 文件操作与目录操作学习指南
文件操作和目录操作是编程中非常基础且重要的技能之一。Python 提供了丰富的库和工具来帮助开发者轻松地读取、写入和管理文件及目录。本文将详细介绍如何使用 Python 进行文件操作和目录操作,并提供一些实用的示例。
1. 文件的基本概念
在计算机中,文件是一个存储数据的地方。文件可以包含文本、图片、视频等多种类型的数据。Python 提供了内置的 open()
函数来打开文件,并允许你以不同的模式读取或写入文件。
常见模式:
'r'
: 读取模式(默认)。如果文件不存在,则会抛出异常。'w'
: 写入模式。如果文件存在,则覆盖原有内容;如果文件不存在,则创建新文件。'a'
: 追加模式。如果文件存在,则在末尾追加内容;如果文件不存在,则创建新文件。'x'
: 创建模式。如果文件已经存在,则抛出异常。'b'
: 二进制模式。't'
: 文本模式(默认)。
示例:
# 打开一个文件进行读取
file = open('example.txt', 'r')# 打开一个文件进行写入
file = open('example.txt', 'w')# 打开一个文件进行追加
file = open('example.txt', 'a')
2. 打开文件
使用 open()
函数可以打开一个文件。该函数的第一个参数是要打开的文件路径,第二个参数指定打开文件的方式。
示例:
# 打开一个文件进行读取
with open('example.txt', 'r') as file:content = file.read()print(content)# 打开一个文件进行写入
with open('example.txt', 'w') as file:file.write('Hello, World!\n')file.write('This is a test.\n')# 打开一个文件进行追加
with open('example.txt', 'a') as file:file.write('Appending new line.\n')
3. 文件读取
读取文件的内容可以通过多种方式实现,最常见的是使用 read()
方法。
示例:
# 打开文件并读取全部内容
with open('example.txt', 'r') as file:content = file.read()print(content)# 逐行读取文件
with open('example.txt', 'r') as file:for line in file:print(line.strip()) # strip() 去除行尾的换行符
4. 文件写入
写入文件可以通过 write()
方法实现。
示例:
# 打开文件并写入内容
with open('example.txt', 'w') as file:file.write('Hello, World!\n')file.write('This is a test.\n')# 追加内容到文件
with open('example.txt', 'a') as file:file.write('Appending new line.\n')
5. 文件关闭
使用 close()
方法可以手动关闭文件。然而,推荐使用 with
语句,因为它会在代码块执行完毕后自动关闭文件。
示例:
# 手动关闭文件
file = open('example.txt', 'r')
content = file.read()
file.close()# 使用 with 语句
with open('example.txt', 'r') as file:content = file.read()print(content)
6. 文件指针
文件指针用于指示当前读取或写入的位置。可以使用 tell()
获取当前位置,使用 seek()
移动指针。
示例:
# 获取当前文件指针位置
with open('example.txt', 'r') as file:position = file.tell()print(f"Current position: {position}")# 将文件指针移动到指定位置
with open('example.txt', 'r') as file:file.seek(10) # 移动到第10个字节print(file.read())
7. 文件编码
在处理非 ASCII 字符时,需要指定文件的编码格式。常见的编码包括 UTF-8、GBK 等。
示例:
# 以 UTF-8 编码读取文件
with open('example.txt', 'r', encoding='utf-8') as file:content = file.read()print(content)# 以 GBK 编码写入文件
with open('example.txt', 'w', encoding='gbk') as file:file.write('你好,世界!')
8. 实用技巧
8.1 处理大文件
对于大文件,一次性读取整个文件可能会导致内存不足。可以分块读取文件内容。
示例:
chunk_size = 1024 # 每次读取1KB
with open('large_file.txt', 'r') as file:while True:chunk = file.read(chunk_size)if not chunk:breakprint(chunk)
8.2 检查文件是否存在
在操作文件之前,可以先检查文件是否存在。
示例:
import osif os.path.exists('example.txt'):print("File exists.")
else:print("File does not exist.")
9. 目录操作
目录操作是指对文件系统中的目录进行管理,包括创建、删除、列出等操作。Python 提供了 os
和 shutil
模块来实现这些功能。
9.1 列出目录内容
使用 os.listdir()
可以列出指定目录中的所有文件和子目录。
示例:
import os# 列出当前目录下的所有文件和子目录
entries = os.listdir('.')
print(entries)
9.2 检查目录是否存在
使用 os.path.isdir()
可以检查某个路径是否是目录。
示例:
import os# 检查目录是否存在
directory = 'my_directory'
if os.path.isdir(directory):print(f"{directory} 是一个目录。")
else:print(f"{directory} 不是一个目录。")
9.3 创建目录
使用 os.mkdir()
可以创建一个新的目录。
示例:
import os# 创建一个新的目录
new_directory = 'new_directory'
os.mkdir(new_directory)
print(f"已创建目录: {new_directory}")
9.4 删除目录
使用 os.rmdir()
可以删除一个空目录。
示例:
import os# 删除一个空目录
directory_to_delete = 'empty_directory'
os.rmdir(directory_to_delete)
print(f"已删除目录: {directory_to_delete}")
9.5 删除非空目录
如果需要删除非空目录及其所有内容,可以使用 shutil.rmtree()
。
示例:
import shutil# 删除一个非空目录及其所有内容
directory_to_delete = 'non_empty_directory'
shutil.rmtree(directory_to_delete)
print(f"已删除目录及其内容: {directory_to_delete}")
9.6 重命名目录
使用 os.rename()
可以重命名目录。
示例:
import os# 重命名目录
old_name = 'old_directory'
new_name = 'new_directory'
os.rename(old_name, new_name)
print(f"已重命名目录: {old_name} -> {new_name}")
10. 总结
通过本文的学习,你应该掌握了以下内容:
- 如何打开和关闭文件。
- 如何读取和写入文件。
- 如何处理文件指针和编码。
- 如何处理大文件和检查文件是否存在。
- 如何进行目录操作,包括列出、创建、删除、重命名等。
最近有点忙,学习进度有点落后了,好不容易找到的感觉不能丢,继续学习
感谢 cs 自学社区 群里的小伙伴的鼓励,我会坚持下去的💪⛽️