当前位置: 首页 > news >正文

菜鸡前端计算机强基计划之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 提供了 osshutil 模块来实现这些功能。

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 自学社区 群里的小伙伴的鼓励,我会坚持下去的💪⛽️


http://www.mrgr.cn/news/96300.html

相关文章:

  • 基于SpringBoot的“交通旅游订票系统”的设计与实现(源码+数据库+文档+PPT)
  • linux》》docker 、containerd 保存镜像、打包tar、加载tar镜像
  • 5.0 WPF的基础介绍1-Grid,Stack,button
  • flink 分组窗口聚合 与 窗口表值函数聚合 的区别
  • Codeforces Round 1013 (Div. 3)-F
  • 06-SpringBoot3入门-常见注解(简介)
  • 典范硬币系统(Canonical Coin System)→ 贪心算法
  • 【商城实战(93)】商城高并发实战:分布式锁与事务处理深度剖析
  • 如何一键安装所有Python项目的依赖!
  • GenBI 中如何引入 LLM 做意图路由,区分查数据还是闲聊
  • 【C#】Task 线程停止
  • 构建高可用性西门子Camstar服务守护者:异常监控与自愈实践
  • Audacity Nyquist插件开发:定义输入框和获取用户输入
  • #VCS# 关于 +incdir+xxx 编译选项的注意点
  • 【Zabbix技术系列文章】第①篇——基础入门
  • Selenium Web自动化如何快速又准确的定位元素路径,强调一遍是元素路径
  • rent8_wechat-新增提醒收租功能
  • SQL优化 | OceanBase是否遵循最左匹配原则?(三)
  • [异步监听事件、异步绑定属性]通过vue的this.$refs.组件.$props和.$on实现异步绑定组件属性和事件监听
  • Kubernetes》k8s》Containerd 、ctr 、cri、crictl