Python——对文件的操作

news2024/9/23 3:29:08

一、 文件的读写
读文件:从磁盘打开
写文件:将文件存入磁盘
使用内置函数open()创建文件对象。
格式为:

file = open(filename [,mode,encoding])

其中

file  ——被创建的文件对象
open  ——创建文件对象的函数
filename ——要创建或要打开的文件名称
mode ——打开模式默认为只读,也可以对打开模式进行更改
encoding ——默认文本文件中字符的编写格式为gbk

现在来尝试对一个简单文本文件的读取,创建一个文本文件(在该目录下进行创建,才创建到其他位置需要把路径也写出来)
在这里插入图片描述
在这里插入图片描述
读取文件的代码

#文件的读取
file = open('duqu.txt', 'r', encoding='utf-8')
print(file.readlines())
file.close()

运行结果
在这里插入图片描述
二、常用的文件操作模式
在这里插入图片描述

(1)r在前面已经讲过
(2)w
原来的文本文件
在这里插入图片描述
程序

#写
file = open('duqu.txt', 'w', encoding='utf-8')
file.write('python')
file.close()

运行结果.
在这里插入图片描述
(3)追加
原来的文本文件
在这里插入图片描述

#追加
file = open('duqu.txt', 'a', encoding='utf-8')
file.write('python')
file.close()

运行结果
在这里插入图片描述
(4) b,与其他方式一起使用
比如说读取一张图片,然后在复制该图片
在这里插入图片描述
程序

#二进制方式进行读取
sfile=open('img.png','rb')
tfile=open('copyimg.png','wb')
tfile.write(sfile.read())
tfile.close()
sfile.close()

运行结果
在这里插入图片描述
(5)+配合其他方式一起使用

三、文件对象的常用方法
在这里插入图片描述
示例,
文本文件里面的内容
在这里插入图片描述
(1)read([size])
①省略size,从头读到尾

file=open('duqu.txt','r',encoding='utf-8')
print(file.read())

运行结果
在这里插入图片描述
②规定了长度

file=open('duqu.txt','r',encoding='utf-8')
# print(file.read())
print(file.read((7)))
# print(file.readline())
# print(file.readlines())
# print(file.write('成就自我,服务祖国'))

运行结果
在这里插入图片描述
(2)readline()
从文本中读取一行内容

file=open('duqu.txt','r',encoding='utf-8')
# print(file.read())
# print(file.read((7)))
print(file.readline())
# print(file.readlines())
# print(file.write('成就自我,服务祖国'))

运行结果
在这里插入图片描述
(3)readlines
读取之后,放到列表中返回

file=open('duqu.txt','r',encoding='utf-8')
# print(file.read())
# print(file.read((7)))
# print(file.readline())
print(file.readlines())
# print(file.write('成就自我,服务祖国'))

运行结果
在这里插入图片描述
(4)write
①写字符串write(str)

file=open('duqu.txt','a',encoding='utf-8')
# print(file.read())
# print(file.read((7)))
# print(file.readline())
# print(file.readlines())
print(file.write('\n成就自我,服务祖国'))

运行结果
在这里插入图片描述
②写字符串列表writelines(s_list)

file=open('duqu.txt','a',encoding='utf-8')
lst=['我','们','一','起','加','油']
file.writelines(lst)

运行结果
在这里插入图片描述
注意:文件操作完成后,要注意代码的规范性,后面加一个close用于释放资源。同时,close就已经是把文件关闭了,之后对文件进行的操作就是无效的了。
四、with语句
使用with语句可以自动关闭文件,with语句可以自动管理上下文资源,不论什么原因跳出with块,都能确保文件的正常关闭,从而达到释放资源的目的。
例如

#with语句
with open('duqu.txt','r',encoding='utf-8') as file:
    print(file.read())

运行结果
在这里插入图片描述
五、os模块的常用函数
os模块是Python内置的与操作系统功能和文件系统相关的模块,该模块中的语句的执行结果通常与操作系统有关,可能存在在不同的操作系统上运行,得到的结果不一样的情况。os模块和os.path模块用于对目录或文件进行操作。
(1)打开系统里面的应用
①根据名称进行打开
这里使用os模块调用记事本和计算器

#os模块是与操作系统相关的模块

import os
#尝试利用os模块调用记事本
os.system('notepad.exe')
#利用os模块调用计算器
os.system('calc.exe')

运行结果
在这里插入图片描述
在这里插入图片描述
②根据路径进行打开
打开的是.exe可执行文件
格式:

os.startfile('路径')

其他与os模块操作目录相关函数
在这里插入图片描述
六、os.path模块的常用方法
在这里插入图片描述
七、总结
在这里插入图片描述

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

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

相关文章

全新特征融合模块AFPN,完胜PAFPN

直接看图说话 论文地址:https://arxiv.org/abs/2306.15988v1 代码地址: GitHub - gyyang23/AFPN 多尺度特征在目标检测任务中对具有尺度方差的目标进行编码时具有重要意义。多尺度特征提取的一种常见策略是采用经典的自上而下和自下而上的特征金字塔网络…

【线程】线程概念及相关函数实现

目录 0. 线程的概念 1. 线程的基本操作 1.1 线程的创建:pthread_create函数 1.2 线程等待:pthread_join函数 1.3 线程的分离:pthread_detach函数 1.4 线程退出:pthread_exit函数 1.5 线程的取消:pthread_cancel…

了解Spring

目录 什么是Spring? DI Spring 存与取 spring 的存操作 spring的取操作 更快速的进行 Spring 存 与 读 三大注入方式 Autowired set 注入 构造方法注入 Spring 容器中有多个相同的类时 Bean 作用域 设置作用域 Spring 执行流程 Bean 生命周期 什么是Spring? Sp…

【密码学基础】半/全同态加密算法基础学习笔记

文章目录 1 半同态加密Pailliar加法同态加密Paillier加解密过程Paillier的同态性Paillier的安全性 El Gamal乘法同态加密RSA乘法同态加密 2 全同态加密BFV全同态加密BFV的编码方式BFV加解密过程BFV的安全性BFV的同态性自举Bootstrapping 3 同态加密应用场景场景1:安…

【maven】安装、使用和常用命令

安装 windows 下载Maven二进制文件 前往Apache Maven官方网站 (https://maven.apache.org) ,找到最新的稳定版本,然后下载对应的二进制压缩包(如apache-maven-3.8.2-bin.zip)。解压缩文件 将下载的压缩包解压到你选择的目录&…

QCC51XX---chain修改

QCC51XX---系统学习目录_嵌入式学习_force的博客-CSDN博客 如何去修改音频chain链路,就是那种想多加几条输入源或输出,又或者把当前的输入输出换到别的地方的那种应用。例如一个自带mic的dongle,或者模拟输入的LE dongle。 如果要改某个状态下的音频链路,那就需要先找出默认…

修复常见 Android 问题的 9 款顶级 Android 手机维修软件

许多人发现Android手机或平板电脑上的Android操作系统一开始运行得很好,但随着时间的推移,可能会出现各种Android系统问题。您可能会遇到一些问题,例如系统速度变慢、启动无响应、挂起错误、界面冻结、短信停滞、应用程序崩溃等。那么&#x…

Linux学习之内存查看命令free和top

我用来演示的系统使用CentOS Linux release 7.6.1810 (Core),内核版本是3.10.0-957.el7.x86_64。 Linux在进程申请内存的时候,一般都是尽可能给进程内存,因为进程在申请内存的时候有损耗。 free free命令可以看以k为单位的内存。 free -…

使用less命令搜索文件中的关键字

目录 介绍常用搜索技巧实例 介绍 less 与 more 类似&#xff0c;less 可以随意浏览文件&#xff0c;支持翻页和搜索&#xff0c;支持向上翻页和向下翻页。 语法 less [参数] 文件 参数说明&#xff1a; -b <缓冲区大小> 设置缓冲区的大小 -e 当文件显示结束后&#xff…

STM32 USART

USART.C 文件中只是针对串口1&#xff0c;使用其他串口需要稍作修改 IC、SPI主要用于一块开发板上两个芯片之间的通信&#xff0c;例如&#xff1a;主控和传感器之间的通信 串口适用于两块开发板之间的通信&#xff0c;或者说开发板和上位机之间的通信&#xff0c;有线通信 以…

MAC OS X 这个“安装 macOS Xxx Xxx”应用程序副本已损坏,不能用来安装 macOS,超级终端修改日期date 已解决

原因&#xff1a;旧版 macOS 证书已经过期 解决方法&#xff1a;断开互联网&#xff0c;修改系统时间 date 102013142018.20 说明&#xff1a;10是月&#xff0c;20是日&#xff0c;13是时&#xff0c;14是分&#xff0c;2018是年&#xff0c;20是秒 输入上面的代码按回车后…

【ARM】-异常与中断

文章目录 中断中断请求、中断源中断服务程序保存现场、恢复现场中断仲裁、中断优先级中断嵌套 异常广义上的异常同步异常异步异常精确异步异常&#xff08;Precise Asynchronous Exception&#xff09;非精确异步异常&#xff08;Imprecise Asynchronous Exception&#xff09;…

发展零碳数据中心,超聚变推动液冷规模商用

算力的发展犹如一体两面。 一方面&#xff0c;在数字经济、产业数字化和数字化转型中&#xff0c;算力发挥着关键的引擎作用&#xff1b;另一方面&#xff0c;持续增长的多元异构算力需求、不断提升的算力密度以及逐渐成体系的算力网络&#xff0c;也带来了不可低估的长期能耗…

Linux基础笔记

已经有很长很长一段时间没有更新帖子了&#xff0c;一眨眼2023 已经过半&#xff0c;这些日子里&#xff0c;有太多太多事情要做了&#xff0c;今年只更新了几篇&#xff0c;这几天刚好有空&#xff0c;浅浅更新一篇叭&#xff01;~~~ 首先&#xff0c;Linux是一种开源的操作系…

测试开发工程必备技能之一:Mock的使用

目录 1. 背景 2. Mock是什么 3. Mock能做什么 4. Mock实现方式 5. Mock市面上常见的解决方案 6. Python下unittest.mock使用 总结&#xff1a; 1. 背景 在实际产品开发过程中&#xff0c;某个服务或前端依赖一个服务接口&#xff0c;该接口可能依赖多个底层服务或模块&…

K8S | 容器和Pod组件

对比软件安装和运行&#xff1b; 一、场景 作为研发人员&#xff0c;通常自己电脑的系统环境都是非常复杂&#xff0c;在个人的习惯上&#xff0c;是按照下图的模块管理电脑的系统环境&#xff1b; 对于「基础设施」、「主机操作系统」、「系统软件」来说&#xff0c;通常只做…

MYSQL根据标签查询数据

场景条件&#xff1a; 1.根据用户id查询到该id绑定的标签&#xff08;可能是多个标签也可能是单个标签&#xff09; 2.根据标签的id查询到绑定标签id的信息表 SELECT labelID FROM LRrelation WHERE relationID 1 SELECT * FROM notification SELECT * FROM notification…

解决GitHub下载速度太慢问题的方法汇总(持续更新,建议收藏)

文章目录 前言一、使用 git clone --depth1 来下载二、修改host文件解决三、谷歌浏览器插件加速四、油猴插件和脚本五、gitclone.com六、Github 加速下载链接七、Github 镜像访问八、使用码云下载参考资料&#xff0c;感谢以下文章 前言 Github上下载仓库或者克隆仓库&#xf…

运输层:TCP流量控制

1.运输层&#xff1a;TCP流量控制 笔记来源&#xff1a; 湖科大教书匠&#xff1a;TCP流量控制 流量控制(flow control)就是让发送方的发送速率不要太快&#xff0c;要让接收方来得及接收。 实现方法&#xff1a;滑动窗口机制 移动发送窗口&#xff0c;因接收窗口大小为300&am…

C++思维,作业7.3

#include <iostream> #include <cstring> using namespace std; int monster_blood10000; //英雄 class Hero { protected:string name;int hp;int attck; public:Hero(){//cout << "Hero的无参构造" << endl;}Hero(string name,int hp,int …