生命在于学习——Python人工智能原理(2.6.1)

news2024/11/23 4:41:36

在这里插入图片描述

六 Python的文件系统

6.1 打开文件

在Python中,可以使用内置的open函数来打开文件,open函数的基本语法如下:

file = open(file_name, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
参数说明:

file_name (必需):要打开的文件名或路径。
mode (可选,默认为 'r'):文件打开模式。常见的模式有:
'r':只读模式(默认)。
'w':只写模式,如果文件已存在则会被覆盖。
'x':创建文件并写入,如果文件已存在则会产生异常。
'a':追加模式,如果文件已存在则在文件末尾追加内容。
'b':二进制模式(可以与上述模式组合,如 'rb''wb')。
't':文本模式(默认,通常不需要明确指定)。
'+':表示可以同时读写文件(如 'r+''w+''a+')。
buffering (可选,默认为 -1):设置缓冲策略。
0 表示无缓冲(仅用于二进制模式)。
1 表示行缓冲(仅用于文本模式)。
大于 1 的值表示缓冲区大小(以字节为单位)。
-1 表示默认缓冲策略。
encoding (可选,用于文本模式):设置文件编码方式,如 'utf-8'。
errors (可选,用于文本模式):设置编码错误的处理方式,如 'ignore''replace' 等。
newline (可选,用于文本模式):控制跨平台的新行符。可以是 None'\n''\r''\r\n' 或其他任何字符串。
closefd (可选,仅当文件描述符由 opener 提供时有用):如果为 True,则在文件对象被关闭时,底层文件描述符也会被关闭。默认为 True。
opener (可选):一个可调用对象,用于打开文件描述符,如 os.open()

6.2 关闭文件

使用完文件后,应该及时关闭以释放资源。
文件使用结束后采用close()方法关闭,关闭格式:

变量名.close()

6.3 文件读取

当文件被打开后,按照打开方式的不同对文件进行相应的读写操作,如果文件用文本文件方式打开,读写按照字符串方式进行操作,使用当前计算机使用的编码或指定编码。
如果用二进制的方式打开,读写按照字节流方式操作。

1. read(size)
read(size)方法从文件中读取指定数量的字节(或字符,在文本模式下)并返回。如果指定了size参数,则读取指定数量的字节或字符;如果没有指定size或size为负值,则读取并返回整个文件。

示例:

python
with open('example.txt', 'r') as file:  
    content = file.read(10)  # 读取前10个字符  
    print(content)
2. readline()
readline()方法从文件中读取一行,包括行尾的换行符(\n)。如果文件已经读取到末尾,则返回空字符串。这个方法在需要逐行处理文件内容时非常有用。

示例:

python
with open('example.txt', 'r') as file:  
    line = file.readline()  # 读取第一行  
    print(line, end='')  # 输出第一行,并去除默认的换行符  
  
    # 逐行读取并打印文件内容  
    while True:  
        line = file.readline()  
        if not line:  # 如果读取到空字符串,说明文件已读完  
            break  
        print(line, end='')
3. readlines()
readlines()方法读取文件中的所有行,并返回一个包含所有行(作为字符串列表)的列表。每一行都是一个字符串,包括末尾的换行符(\n)。如果文件很大,这个方法可能会占用大量内存,因为它会一次性读取整个文件。

示例:

python
with open('example.txt', 'r') as file:  
    lines = file.readlines()  # 读取所有行到列表中  
  
# 遍历列表并打印每一行  
for line in lines:  
    print(line, end='')

6.4 文件写入

在Python中,文件写入操作通常涉及使用open()函数以写入模式(‘w’、‘a’、'x’等)打开一个文件,并使用文件对象的write()方法将内容写入文件。以下是关于文件写入的详细介绍:

写入模式
'w': 写入模式,如果文件已存在则会被覆盖,如果文件不存在则创建新文件。
'a': 追加模式,如果文件已存在,则在文件末尾追加内容;如果文件不存在,则创建新文件。
'x': 独占创建模式,如果文件已存在则会产生FileExistsError异常,如果文件不存在则创建新文件。
使用 write() 方法
write()方法用于将字符串写入文件。

python
with open('example.txt', 'w') as file:  # 以写入模式打开文件  
    file.write('Hello, World!\n')  # 写入字符串到文件  
  
with open('example.txt', 'a') as file:  # 以追加模式打开文件  
    file.write('This is an appended line.\n')  # 在文件末尾追加内容

写入其他类型数据
如果需要将非字符串类型的数据(如整数、浮点数、列表等)写入文件,通常需要先将其转换为字符串格式。

python
with open('numbers.txt', 'w') as file:  
    file.write(str([1, 2, 3, 4, 5]))  # 将列表转换为字符串并写入文件

注意事项
使用with语句可以确保文件在使用完毕后被正确关闭。
写入文件时,如果文件不存在,则会创建新文件;如果文件已存在且使用’w’模式,则会覆盖原有内容。
如果需要在文件末尾追加内容,应使用’a’模式。

6.5 文件系统其他api

Python的os和os.path模块提供了许多与文件系统交互的API,以下是一些常用的API:

os 模块
os.listdir(path): 列出指定目录下的文件和子目录名。
os.getcwd(): 返回当前工作目录。
os.chdir(path): 改变当前工作目录。
os.mkdir(path): 创建新目录。
os.rmdir(path): 删除空目录。
os.remove(path): 删除文件。
os.rename(old_path, new_path): 重命名文件或目录。
os.path.exists(path): 检查路径是否存在。
os.path.isfile(path): 检查路径是否为文件。
os.path.isdir(path): 检查路径是否为目录。
os.path.getsize(path): 获取文件大小(以字节为单位)。
os.path 模块
os.path模块提供了许多用于处理文件路径的实用函数。

os.path.abspath(path): 返回指定文件的绝对路径。
os.path.basename(path): 返回路径中的文件名。
os.path.dirname(path): 返回路径中的目录名。
os.path.join(path, *paths): 将一个或多个路径组件连接成一个路径名。
os.path.split(path): 将路径拆分为目录名和文件名。
os.path.splitext(path): 将路径拆分为文件名和扩展名。
os.path.isabs(path): 判断路径是否为绝对路径。
os.path.getmtime(path): 返回文件或目录的最后修改时间。
os.path.getatime(path): 返回文件或目录的最后访问时间。
os.path.getctime(path): 返回文件或目录的创建时间(在某些系统上可能是最后修改时间)。
使用这些API可以方便地在Python中进行文件系统的操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1869424.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

“水刊”来了!专注发表水方向的SCI刊物,此“水刊”非彼水刊

【SciencePub学术】曾经的超级“水刊”《WATER SUPPLY》因为触碰红线,现在依旧被“on hold”中,解封日期恐怕也是遥遥无期。 来源:科睿唯安官网 后台有人私信小编有没有关于“水”类的期刊推荐,小编后台整理了一下,今…

一键生成AI动画视频?Animatediff 和 ComfyUI 更配哦!

大家好我是极客菌! 之前我分享过 Animatediff 在 WebUI 中的应用,最近不是在分享 ComfyUI 嘛,那我们也来讲讲 Animatediff 在 ComfyUI 的应用。 如果从工作流和内存利用率的角度来说,Animatediff 和 ComfyUI 可能更配一些&#…

金融科技如何运用技术手段实现细颗粒度服务

随着金融科技的快速发展,金融机构正在通过采用各种技术手段来提供更加细颗粒度的服务,以满足客户日益增长的个性化需求。这些技术手段不仅提高了金融服务的效率和安全性,还显著提升了用户体验和满意度。 一、大数据分析与人工智能&#xff08…

iOS 其他应用的文件如何在分享中使用自己的应用打开

废话少说 一、第一步:先配置好plist文件 右击info.plist如下图文件打开 根据自己需要配置支持的文件类型,也可使用property List中配置,一样的 其他的文件可是参考文档:System-Declared Uniform Type Identifiers 可复制的代码&am…

基于Vue 3.x与TypeScript的PPTIST本地部署与无公网IP远程演示文稿

文章目录 前言1. 本地安装PPTist2. PPTist 使用介绍3. 安装Cpolar内网穿透4. 配置公网地址5. 配置固定公网地址 前言 本文主要介绍如何在Windows系统环境本地部署开源在线演示文稿应用PPTist,并结合cpolar内网穿透工具实现随时随地远程访问与使用该项目。 PPTist …

基于java + Springboot 的二手物品交易平台实现

目录 📚 前言 📑摘要 📑系统架构 📚 数据库设计 📚 系统功能的具体实现 💬 登录模块 首页模块 二手商品轮播图添加 💬 后台功能模块 二手商品商品列表 添加二手商品商品 添加购物车 &a…

CesiumJS【Basic】- #019 加载glb/gltf文件(Entity方式)

文章目录 加载glb/gltf文件(Entity方式)1 目标2 代码实现3 资源文件加载glb/gltf文件(Entity方式) 1 目标 使用Entity方式加载glb/gltf文件 2 代码实现 import * as Cesium from "cesium";const viewer = new Cesium.Viewer

langchain中的召回增强生成(RAG)一览

什么是RAG?[3] RAG是一种通过额外的、通常是私有或实时的数据来增强LLM知识的技术。LLM能够推理各种广泛的主题,但它们的知识仅限于它们训练时的公共数据,到达其特定时间节点为止。如果你想构建可以推理私人数据或在模型截止日期之后引入的数…

linux 安装腾讯会议和解决ubuntu打开腾讯会议提示:不兼容 wayland 协议

一. 下载腾讯会议安装包 腾讯会议下载链接 二. 命令行安装 cd [安装包路径] sudo dpkg -i TencentMeeting_0300000000_3.19.1.400_x86_64_default.publish.deb 三. 打开腾讯会议提示无法支持wayland 协议 解决方法: 打开终端 sudo vi /etc/gdm3/custom.conf打开 #Wayland…

vue3 【提效】全局布局 vite-plugin-vue-layouts 实用教程

一个常见的需求是,同模块的若干页面需要使用同一种布局,比如俱乐部相关的页面的顶部需要展示俱乐部的名称,其他页面顶部需要展示网站名称。 通常实现的方法是,将俱乐部的名称和网站名称定义成公共组件,在每个页面都书…

pycharm terminal终端不能激活 conda 虚拟环境,解决方法

# 1. 确保执行策略已更改 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser# 2. 初始化Conda conda init powershell# 3. 重启PowerShell# 4. 验证Conda初始化 conda --version# 5. 激活Conda环境 conda activate shi_labelme关闭所有的终端,然后重新打开新的终…

算法力扣刷题记录六【203移除链表元素】

前言 链表篇,开始。 记录六:力扣【203移除链表元素】 一、数据结构——链表 来源【代码随想录】,总结: (1)线性结构。内存地址不连续,通过指针指向串联一起。 (2)链表类…

互联网企业出海不得不面对的安全问题

在出海的互联网企业中,为什么游戏、电商企业总是被“D”?究其内因,这或与游戏和电商等业务的商业模式和技术应用有较大的关系。 首先,对于游戏和电商等行业而言,良好的用户体验是业务增长的关键点。对于普通用户而言&a…

当大模型开始「考上」一本

参加 2024 河南高考,豆包和文心 4.0 过了一本线,但比 GPT-4o 还差点。 今天的大模型,智力水平到底如何? 2024 年高考陆续出分,我们想要解开这个过去一年普罗大众一直争论不休的话题。高考是衡量人类智力和学识水平的…

鸿蒙:自定义组件、自定义函数、自定义样式

一、自定义组件 1.新建组件文件夹,新建自定义组件文件 . 2.编辑自定义组件,并通过 Component //声明组件 export struct PageHeader { //结构体private title: stringbuild() { //uiRow() {Image($rawfile(左返回.png)).width(15%)Text(this.title)…

C++实现一个简单的Qt信号槽机制

昨天写这个文章《深入探讨C的高级反射机制(2):写个能用的反射库》的时候就在想,是不是也能在这套反射逻辑的基础上,实现一个类似Qt的信号槽机制? Qt信号槽机制简介 所谓的Qt的信号槽(Signals …

吉时利 Keithley2461 数字源表

Keithley2461吉时利SMU高电流数字源表 2461 型图形化高电流数字 SourceMeter SMU 2461 高电流 SMU 凭借其 10A/1000W 脉冲电流和 7A/100W 直流电流能力以及双 18 位 1MS/s 数字转换器,优化用于检定和测试高功率材料、器件和模块,例如碳化硅 (SiC)、氮化…

WIFI各版本的带宽

带宽的定义: 带宽在网络领域通常指信道带宽,即信号在频谱中占用的频宽,单位是MHz(兆赫)。在无线通信中,带宽越宽,能够传输的数据量越大,因此信道带宽直接影响着数据传输速率。WiFi标…

LeetCode刷题之HOT100之岛屿数量

2024 6/27 酷暑难耐,天气热了,似乎更容易午睡了。上午上了cnn最后一节课。睡一觉买一杯蜜雪冰城,坐在舒适的实验室敲击键盘,做题! 1、题目描述 2、逻辑分析 是的,又是直奔题解的一天哈!题解给…

基于MATLAB仿真设计无线充电系统

通过学习无线充电相关课程知识,通过课程设计无线充电系统,将所学习的WPT,DC-DC,APFC进行整合得到整个无线充电系统,通过进行仿真研究其系统特性,完成我们预期系统功能和指标。 以功率器件为基本元件&#x…