第十节:文件和目录的操作

1、 IO流(Stream)

通过"流"的形式允许计算机程序使用相同的方式来访问不同的输入/输出源。stream是从起源(source)到接收的(sink)的有序数据。我们这里把输入/输出源对比成"水桶",那么流就是"管道"。

文件流: 就是源或者目标都是文件的流。

2、文件流的操作

  • 打开文件流

    • 文件对象 = open(目标文件, 访问模式)
  • 读操作

    • 文件对象.read() : 默认读取整个文件。 或者可以读取指定大小的数据

    • 文件对象.readlines()

    • 文件对象.readline()

  • 写操作

    • 文件对象.write()
  • seek() 指针操作

    • seek(偏移量,起始位置): 起始位置为:0:文件开头,1:当前位置, 2:文件结尾位置

    • tell()函数返回当前指针位置。

  • 关闭

    • close()
  • 访问模式

二、with语句

对于系统资源如文件、数据库连接、socket 而言,应用程序打开这些资源并执行完业务逻辑之后,必须做的一件事就是要关闭(释放)该资源。

比如 Python 程序打开一个文件,往文件中写内容,写完之后,就要关闭该文件,如果不关闭会出现什么情况呢?极端情况下会出现 Too many open files 的错误,因为系统允许你打开的最大文件数量是有限的。

python 复制代码
 with open(file, "w") as f:
        f.write("hello python")

3、文件和文件夹的操作

在Python中文件和文件夹的操作要借助os模块里面的相关功能。OS模块是Python标准库中的一个用于访问操作系统功能的模块。

首先需要导入OS模块: import os

python 复制代码
import os                           # 使用之前先导入
os.name                             # 查看当前操作系统的名字,"nt"表示Windows,"posix"表示Linux
os.sep                              # 获取当前系统平台路径分隔符
os.getcwd()                         # 获取当前工作目录
os.environ[key]/os.getenv(key)      # 获取当前环境变量值
os.listdir(path)                    # 列出指定目录path的所有文件和目录名
os.chdir(path)                      # 切换目录
os.mkdir(path)/os.makedirs(path)    # 创建单层目录/多层目录
os.rmdir(path)/os.removedirs(path)  # 删除单层空目录/多层空目录
os.remove(file_name)                # 删除文件
os.rename(old_name,new_name)        # 修改文件或目录名称
os.path.abspath(path)               # 获取指定相对路径的绝对路径
os.path.split(path)                 # 获取指定路径的目录名或文件名
os.path.isfile(path)                # 判断指定路径目标是否为文件
os.path.isdir(path)                 # 判断指定路径目标是否为目录
os.path.exists(path)                # 判断指定路径是否存在
os.path.splitext(path)              # 分离文件拓展名
os.path.join(path,*paths)           # 路径连接
os.path.base(path)                  # 提取文件名
os.path.dirname(path)               # 提取文件路径
os.path.getsize(path)               # 返回文件大小

4、案例:实现一个文件夹中(目录中可能还有子目录),拷贝所有的py文件。到另外一个指定的目录中。

配套课程请私信。

相关推荐
特立独行的猫A3 小时前
我给女儿写了个打字练习:一边敲键盘,一边把小学英语单词记牢
java·后端·python
cpolar技术支持3 小时前
「我这边连不上你那个服务」—— 用清单驱动的 TCP 连通性只读看板,cpolar 让远端同事自己取证
python·内网穿透·tcp·cpolar·网络诊断
云和数据.ChenGuang4 小时前
LangGraph 异步 Node 的设计与写法实践
开发语言·人工智能·python·机器学习·php
天诰5 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
benchmark_cc6 小时前
用 QuantDash 读取美股行情:AAPL.US 的运行前检查、排错顺序与数据校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
羲云网络9 小时前
GPT Image 2.6 接入指南:Flare、Sunburst 怎么选,编辑失败如何排查
人工智能·python·aigc·图像生成·acedatacloud
橙橙笔记12 小时前
具身智能的学习 - 完成一个机械臂 第1节
python·学习·机械臂·具身智能
小小张说故事12 小时前
Python 的 class 语句到底执行了什么?拆开 __prepare__、metaclass.__new__ 和那个被讲反的 __set_name__ 顺序
python
天天被压力15 小时前
【A股分钟级高频数据完全手册 #07】北交所历史分钟K线接口:京市Pro版分时批量
java·人工智能·python
天天被压力15 小时前
【A股分钟级高频数据完全手册 #08】股票日、分时数据接口对比:普通分时与Pro版差异实测
java·人工智能·python