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

在这里插入图片描述

六 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.mzph.cn/news/862051.shtml

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

相关文章

【Web3】Web3.js 启动!并解决Web3 is not a constructor报错

苏泽 大家好 这里是苏泽 一个钟爱区块链技术的后端开发者 本篇专栏 ←持续记录本人自学智能合约学习笔记和经验总结 如果喜欢拜托三连支持~ 本节教大家如何启动Web3.js 目录 Web3 启动! 于是很愉快的报错 创建实例! 出来了 Web3:模块…

《PIDNet: A Real-time Semantic Segmentation Network Inspired by PID Controllers》

期刊:CVPR 年份:2023 代码:https://github.com/XuJiacong/PIDNet 摘要 双分支网络架构已经证明了它在实时语义分割任务中的有效性和有效性。然而,高分辨率细节和低频上下文的直接融合的缺点是细节特征很容易被周围的上下文信息…

快储存,分布式文件系统,对象储存

Ceph块存储 镜像快照 快照可以保存某一时间点时的状态数据快照是映像在特定时间点的只读逻辑副本希望回到以前的一个状态,可以恢复快照使用镜像、快照综合示例 rbd create img1 --size 10G 创建镜像rbd ls 查看镜像 rbd info img1 #查看…

Win32消息机制原理及消息运转

一.消息机制原理 1.消息类型: WIndows定义的一系列WM_XXX开头的,用来表示键盘按键,鼠标点击,窗口变化,用户自定义等各种消息; 2.消息队列: Windows为每一个正在运行的程序维护一个消息队列应用程序的消…

让DroidVNC-NG支持中文输入

DroidVNC-NG支持控制端输入内容,但是仅支持英文字符,如果需要控制输入法软键盘输入中文的话就没办法了,经过摸索找到了解决办法。 这个解决办法有个条件就是让DroidVNC-NG成为系统级应用(这个条件比较苛刻)&#xff…

【JavaScript】一键入门

目录 一、JS起源 二、JS特点 三、JS组成部分 四、JS引入方式 一、JS起源 Java Script是由网景公司的Live Script发展而来的一种运行在客户端浏览器上的脚本语言,可以实现网页如文本内容、数据动态变化和动画特效等即浏览器与用户交互的这种体验。 二、JS特点 …

当了面试官才知道:做好这3点,面试成功率至少提高50%

关于辉哥: 资深IT从业者, 曾就职于阿里、腾讯、美团、中信科等互联网公司和央企; 两岁小男孩的父亲。 不定期分享职场 | 婚姻 | 育儿 | 个人成长心得体会 关注我,一起学习和成长。 最近作为公司社招面…

昇思25天学习打卡营第9天|使用静态图加速

一、简介: AI编译框架分为两种运行模式,分别是动态图模式以及静态图模式。MindSpore默认情况下是以动态图模式运行,但也支持手工切换为静态图模式。两种运行模式的详细介绍如下: (1)动态图: …

QQ等级评估源码+软件

今天,我将和大家探讨一个与直播、撸礼物相关的主题,它涉及到的是一种特殊的软件及其源码——QQ等级评估工具。在我们的生活中,直播已经成为了一种越来越流行的娱乐方式。不论是音乐会、电子竞技,还是日常生活分享,你都…

基于PHP的初中数学题库管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的初中数学题库管理系统 一 介绍 此初中数学题库管理系统基于原生PHP开发,数据库mysql,系统角色分为学生,教师和管理员。(附带参考设计文档) 技术栈:phpmysqlphpstudyvscode 二 功能 …

【深度学习】python之人工智能应用篇--跨模态生成技术

跨模态生成技术概述 跨模态生成技术是一种将不同模态的数据(如文本、图像、音频、视频等)进行融合和转换的技术。其目标是通过将一个模态的数据作为输入,生成与之对应的另一个模态的输出。这种技术对于突破单一模态的局限性,提高…

【图书推荐】CPython设计与实现“适合所有Python工程师阅读的书籍”

目录 一、图书推荐 |【CPython设计与实现】 1.1、书籍介绍 1.2、内容简介 1.3、适合哪些人阅读 1.4、作者译者简介 1.5、购买链接 一、图书推荐 |【CPython设计与实现】 "深入Python核心,揭秘CPython的设计智慧!📖 对于每一位热衷…

WPF/C#:BusinessLayerValidation

BusinessLayerValidation介绍 BusinessLayerValidation,即业务层验证,是指在软件应用程序的业务逻辑层(Business Layer)中执行的验证过程。业务逻辑层是应用程序架构中的一个关键部分,负责处理与业务规则和逻辑相关的…

【Java Web】Vite构建前端目录结构

目录 一、Vite概述 二、Vite构建Vue3工程化项目 三、ViteVue3项目目录结构 四、ViteVue3项目组件(SFC入门) 五、ViteVue3样式导入方式 六、ViteVue3响应式数据和setup语法糖 一、Vite概述 Vite是一种新型前端构建工具,能够显著提升前端开发体验;Vite结合…

Arduino IDE下载、安装和配置

文章开始先把我自己网盘里的安装包分享给大家,链接:https://pan.baidu.com/s/1cb2_3m0LnuSKLnWP_YoWPw?pwdwwww 提取码:wwww 里面一个是Arduino IDE的安装包,另一个是即将发布的版本。 第一个安装包打开直接按照我的步骤安装就…

【第一周】认识小程序

目录 认识小程序发展历史发展前景发展优势个人企业/创业 账号申请开发工具下载流程使用说明 协作项目交流收益渠道 认识小程序 发展历史 微信小程序自2016年首次提出以来,经历了快速的发展和完善过程,以下是其主要发展历史节点: 2016年1月…

将某列缺失分隔符的文字读入 Excel

有个逗号分隔的 txt,共 10 列,第 3 列有时候缺少分隔符,导致该列缺失,数据不齐只剩 9 列。比如最后两行: 01-0104-0133,MAYO, RONIE #2,202403,2024-03-21 22:51:43.000,1449.49,0.00,0.00,08,6CC6BDAC7E45 17-1782-02…

云端智慧,赋能风电场:工业级控制系统云监控网关

风力发电场监控平台实现对风电场的运行状态和风机的实时数据进行监测、控制和管理,提高风电场的可靠性和运行效率,降低维护成本,实现智能化管理。 风机机组PLC、多功能仪表、无线测温、温度变送器、档位变送器、设备接入网关上传数据服务器。…

STM32G4系列之DAC

一、STM32G4单片机有几个DAC外设? STM32G4单片机共有4个DAC,两个为低速DAC(采样率1MHz),两个为高速DAC(采样率15MHz)。共包括7个通道,3个外部通道和4个内部通道。 三个外部DAC包括DAC1和DAC2,其可以映射到外部管脚&am…

输电线路-防鸟设备神器合集!往这边看看!

有些人可能会很恨鸟儿吧。 综艺《种地吧》第一、第二季分别有陈某、王某负责河虾塘、龙虾塘,每天都会有一个“贵宾”-白鹭,如期而至开吃。兄弟俩对其真的恨,但又没办法,谁让白鹭是国家二级保护动物呢。同样在输电线路上也有这样的…