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

菜鸡前端计算机强基计划之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:
            break
        print(chunk)

8.2 检查文件是否存在

在操作文件之前,可以先检查文件是否存在。

示例:

import os

if 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.kler.cn/a/613302.html

相关文章:

  • 配置基于接口的二层协议透明传输
  • Skynet 中 snlua 服务 init 细节
  • NX二次开发刻字功能——布尔运算
  • Matlab进阶绘图第73期-双组堆叠图
  • Python入门学习笔记 - 从环境搭建到基础语法
  • uni-app:自定义键盘
  • Leetcode 二叉树剪枝
  • 开源测试用例管理平台
  • 用户模块——自定义业务异常
  • Linux下的socket演示程序3(udp)
  • 新手村:逻辑回归-理解03:逻辑回归中的最大似然函数
  • JavaScript 中Object.assign()和展开运算符在对象合并时的区别,各自的适用场景是什么?
  • 线程同步——读写锁
  • YEUSAI网络广播与舞台音响系统成功应用于武夷山文化馆
  • Windows上使用bash脚本
  • [运维]Linux系统扩容磁盘空间-将未分配的空间进行整合分配
  • 3.26学习总结
  • 5、vim编辑和shell编程【超详细】
  • 书籍学习|基于Java+vue的书籍学习平台(源码+数据库+文档)
  • CXL UIO Direct P2P学习