python之文件操作相关知识

news2025/2/1 17:43:17

python之文件操作相关知识

一、文件的打开与关闭

1、打开文件

在Python中,使用 open() 函数,可以打开一个已经存在的文件,或创建一个新文件
语法如下:

open(文件名, 访问模式)

说明:
访问模式决定了打开文件的模式:只读,写入,追加等。这个参数是非强制的,默认文件访问模式为只读(r)。可取值见如下列表。

请添加图片描述

2、关闭文件

关闭文件使用 close() 方法

二、文件的读写

1、读

1.1 read()

使用 read(num) 可以从文件中读取数据,num 表示要从文件中读取的数据的长度,如果没有传入num,那么就表示读取文件中所有的数据

假设有文件test1.txt,位于与 Python 相同的文件夹中
请添加图片描述
示例1

# 使用 open() 函数打开文件
f = open('test1.txt','r')

# 使用 read() 方法读取文件的内容
print(f.read())

# 关闭这个文件
f.close()

运行结果:
请添加图片描述

示例2

# 使用 open() 函数打开文件
f = open('test1.txt','r')

# 返回文件中的前五个字符
print(f.read(5))

# 关闭这个文件
f.close()

运行结果:
请添加图片描述

1.2 readlines()

readlines() 可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素
示例

# 使用 open() 函数打开文件
f = open('test1.txt','r')

print(f.readlines())

# 关闭这个文件
f.close()

运行结果:
请添加图片描述

1.3 readline()

使用 readline() 方法返回一行
示例

# 使用 open() 函数打开文件
f = open('test1.txt','r')

# 读取文件中的两行
print(f.readline())
print(f.readline())

# 关闭这个文件
f.close()

运行结果:
请添加图片描述

1.4 逐行遍历文件

通过循环遍历文件中的行,可以逐行读取整个文件
示例

# 使用 open() 函数打开文件
f = open('test1.txt','r')

for x in f:
    print(x)

# 关闭这个文件
f.close()

运行结果:
请添加图片描述

2、写

使用 write() 可以完成向文件写入数据

假设有文件test2.txt,位于与 Python 相同的文件夹中
请添加图片描述
示例1

# 打开文件 "test2.txt" 并将内容追加到文件中
# "a" :追加,会追加到文件的末尾
f = open('test2.txt','a')
f.write('Be running up that building')
f.close()

# 追加后,打开并读取该文件:
f = open("test2.txt", "r")
print(f.read())
f.close()

运行结果:
请添加图片描述

示例2

# 打开文件 "test2.txt" 并覆盖内容
# "w" :写入,会覆盖任何已有的内容
f = open('test2.txt','w')
f.write('Be running up that building')
f.close()

# 写入后,打开并读取该文件:
f = open("test2.txt", "r")
print(f.read())
f.close()

运行结果:
请添加图片描述

三、文件的相关操作

当需要对文件进行重命名、删除等操作时,须导入 os 模块

1、文件重命名

os 模块中的 rename() 可以完成对文件或目录的重命名操作
语法如下:

os.rename(src, dst)

参数含义:
src:要修改的文件或目录名
dst:修改后的文件或目录名

示例

import os
# 将 test2.txt 重命名为 test最终版.txt
os.rename("test2.txt","test最终版.txt")

2、删除文件

os 模块中的 remove() 方法用于删除指定路径的文件。如果指定的路径是一个目录,将抛出 OSError
语法如下:

os.remove(path)

参数含义:
path:要删除的文件路径

示例

import os
# 删除当前工作目录下的 test最终版.txt 文件
os.remove("test最终版.txt")

3、创建文件夹

os 模块中的 mkdir() 方法用于以数字权限模式创建目录(单级目录)。默认的模式为 0777 (八进制)。如果目录有多级,则创建最后一级,如果最后一级目录的上级目录有不存在的,则会抛出一个 OSError
语法如下:

os.mkdir(path[, mode])

参数含义:
path:要创建的目录,可以是相对或者绝对路径
mode:要为目录设置的权限数字模式

示例

import os
# 创建文件夹 aaa
os.mkdir("aaa")

4、获取当前目录

os 模块中的 getcwd() 方法用于返回当前工作的目录
语法如下:

os.getcwd()

无参数

示例

import os
# 打印当前目录
print(os.getcwd())

5、改变默认目录

os 模块中的 chdir() 方法用于改变当前工作目录到指定的路径
语法如下:

os.chdir(path)

参数含义:
path:要切换到的新路径

示例

import os
# 修改当前工作目录
os.chdir("./aaa")

6、获取目录列表

os 模块中的 listdir() 方法用于获取指定目录中所有文件和目录的列表。如果未指定任何目录,则将返回当前工作目录中的文件和目录列表
语法如下:

os.listdir(path)

参数含义:
path:需要列出的目录路径

示例

import os
# 打印返回当前工作目录中的文件和目录列表
print(os.listdir())

7、删除文件夹

os 模块中的 rmdir() 方法用于删除指定路径的目录。仅当这文件夹是空的才可以, 否则, 抛出OSError
语法如下:

os.rmdir(path)

参数含义:
path:要删除的目录路径

示例

import os
# 删除文件夹 "aaa"
os.rmdir("./aaa")

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

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

相关文章

【自然语言处理(NLP)】基于SQuAD的机器阅读理解

【自然语言处理(NLP)】基于SQuAD的机器阅读理解 作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学…

vue3和vue2组件风格对比

Vue3 组合式 API(Composition API) 主要用于在大型组件中提高代码逻辑的可复用性。 传统的组件随着业务复杂度越来越高,代码量会不断的加大,整个代码逻辑都不易阅读和理解。 Vue3 使用组合式 API 的地方为 setup。 在 setup 中…

无代码资讯|SAP发布低代码平台;钉钉低代码应用数破500万;轻流举办无代码城市论坛......

栏目导读:无代码资讯栏目从全球视角出发,带您了解无代码相关最新资讯。 TOP3 大事件 1、SAP 召开“SAP TechEd ”大会,发布低代码平台 SAP Build 11 月 15 日-16 日,全球企服巨头 SAP 在美国拉斯维加斯召开“2022 SAP TechEd”产…

MySQL是如何实现事务的隔离级别

MySQL是如何实现事务的隔离级别 - 游生 - 博客园 摘要 本文旨在了解MySQL InnoDB引擎如何支持事务的隔离级别。 文章主要内容分两个部分。 第一部分阐述数据库的并发问题以及为之产生的ANSI SQL 标准隔离级别。 第二部分根据 MySQL 官方文档解释 InnoDB 是如何支持这些隔离…

关于python中自带的类似postman的工具

关于python中自带的类似postman的工具 1.新建一个http 请求: 2.添加请求方式 2.1程序运行 验证数据的运行: 1.post数据添加验证

打造无证服务化:这个政务服务平台有点不一样

摘要:华为云携手深圳市华傲数据技术有限公司针对“数字政府建设”与“数字经济发展”两大场景,打造华傲可信政务区块链解决方案。本文分享自华为云社区《华为云携手华傲数据打造“无证服务”政务服务平台》,作者:灰灰哒 。 当前&…

xray扫描器的使用长亭xray被动扫描

长亭xray被动扫描为了实现点到哪里扫到哪里,用长亭xray配合burp suite插件 插件名为Passive Scan Client GitHub - lilifengcode/Burpsuite-Plugins-Usage: Burpsuite-Plugins-Usage 就用默认端口1664就行,把浏览器代理设成127.0.01 : 1664…

【Pandas数据处理100例】(八十七):Pandas使用get_dummies构建哑变量

前言 大家好,我是阿光。 本专栏整理了《Pandas数据分析处理》,内包含了各种常见的数据处理,以及Pandas内置函数的使用方法,帮助我们快速便捷的处理表格数据。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmPandas版本:1.3.5N…

<学习笔记>从零开始自学Python-之-web应用框架Django( 十一)用户系统和身份验证

用户系统是现代网站的重要组成部分,对用户进行分组权限管理是非常必要的。 Django内置了一套用户和身份验证系统,不用太多代码开发就可以使用这个系统。 Django 的身份验证系统包括: • 用户 • 权限:二元(是或否&…

Unity游戏Mod/插件制作教程05 - 插件实例2: 简单功能实现

这一次的教程进行一个小小的功能实现,完整的制作一个插件。以Mirror这个游戏为例,插件的目标是当玩家按下空格时,有一定概率为玩家增加金钱,或者扣除玩家金钱。概率、增加的金钱、扣除的金钱都由配置文件决定。 使用dnSpy查找金钱…

【SQL】数据库事务

【SQL】数据库事务事物的ACID特性事务的状态显式事务隐式事务事务的使用举例SQL中的四种隔离级别MySQL中的隔离级别如何设置事务的隔离级别innodb默认支持事务事务是一组逻辑操作单元,使数据从一种状态转变到另一种状态事物的ACID特性 原子性(atomicity…

Java搭建宝塔部署实战毕设项目springboot车险理赔管理系统源码

大家好啊,我是测评君,欢迎来到web测评。 本期给大家带来一套Java开发的毕业设计项目springboot车险理赔管理系统源码。 技术架构 技术框架:SpringBoot mybatis bootstrap jquery mysql5.7运行环境:jdk8 nginx1.20 tomcat9 …

QT学习笔记(六)——QT弹出对话框并在主窗口调用对话框的信息

QT弹出对话框并在主窗口调用对话框的信息,显示影像 最近封控,大部分时间都在自己学习写代码,有点feel 了哈,自己摸出来一个简单的qt 界面,也实现了自己想要的功能。本篇博客主要记录一下,如何弹出对话框&a…

[附源码]SSM计算机毕业设计疫情期间物资分派管理系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

@Accessors 注解作用

文章目录前言一、Accessors 源码二、Accessors 属性说明1、fluent 属性2、chain 属性3、prefix 属性前言 在最近的工作中,看到 Accessors(chain true) 这样的注解,上网查询了下,他是 lombok 插件包中的一个注解,那么它是什么意思…

如何快速实现一个颜色选择器

在做前端界面开发的时候,遇到需要改变颜色的需求,就需要使用颜色选择器。 针对这个问题,第一想法,自然是H5提供了input color,可以实现。但不出意外的,IE并不支持。而且,chrome的实现方式和fire…

[附源码]Python计算机毕业设计Django个人博客系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

【java】输入输出流

文章目录标准输入流标准输出流字节打印流字符打印流案例--复制java文件(文件打印流版本)对象序列化流序列化流反序列化流serialVersionID&transientProperties作为Map集合的使用Properties作为集合的特有方法Properties与IO流相结合的方法案例--游戏…

必备模块知识——超声波传感器

一、超声波传感器 1、什么是超声波 人们能听到声音是由于物体振动产生的,它的频率在20HZ-20KHZ范围内,超过20KHZ称为超声波,低于20HZ的称为次声波。常用的超声波频率为几十KHZ-几十MHZ。 2、什么是超声波传感器(常用的HC-SR04超…

基于PHP+MySQL教室预约管理系统的设计与实现

随着我国国民教育的提高,大学生的数量一直在不断的增加,根据网络资料的查询,发现2012年的大学生人数为600万,这是一个不小的数量,说明了我国教育的进步是巨大的。但是问题也随之产生,每年如此多的大学生就需要大学不断的扩建,可是还是不能满足如此多的学生对教室的使用,所以如何…