python文件的基本操作,文件读写

1.文件

1.1文件就是存储在某种长期存储设备上的一段数据

1.2文件操作

打开文件-->读写文件-->关闭文件

注意:可以只打开和关闭文件不进行任何操作

1.3文件对象的方法

1.open():创建一个file对象,默认以只读模式打开

2.read(n):n表示从文件中读取的数据的长度,没有传n值就默认一次性读取文件的素有内容

3.write():将指定内容写入文件

4.close():关闭文件

1.4属性

文件名.name:返回要打开文件的文件名,可以包含文件的具体路径

文件名.mode:返回文件访问模式

文件名.closed:检测文件是否关闭,关闭就返回True

#打开文件
f = open('test.txt')
print(f.name)   #文件名
print(f.mode)   #文件访问模式
print(f.closed)

#关闭文件
f.close()
print(f.closed)

2.读写操作

2.1read(n):n表示从文件中读取的数据的长度,没有传n值或者传值为负值就默认一次性读取文件的素有内容

f = open('test.txt')
print(f.read(5))    #panda 最多读取5个数据
f.close() 

这是当当前文件夹下创建的文件,也就是通过相对路径进行访问的,我们也可以通过绝对路径进行访问(注意取消\(反斜杠的转义)要么在加一个\  要么字符串前面加r)

2.2readline:一次读取一行数据,方法执行完,就会把文件指针移到下一行,准备再次读取

2.3按照行的方式把文件内容一次性读取,返回的是一个列表,每一行的数据就是列表中的一个元素

f = open('test.txt')
text = f.readlines()
print(text)             #['panda is studing Python\n', 'monkey is playing basketball\n', 'bear is sleeping']
print(type(text))       #<class 'list'>

for i in text:
    print(i)            #将数据一行一行打印
    
f.close()

2.4访问模式

2.4.1 r,只读模式(默认模式),文件必须存在,不存在就会报错

2.4.2 w,只写模式,文件存在就会先清空文件,再写入添加内容,不存在就会创建新文件

2.4.3 +,使用+表示可以同时读写某个文件

使用+会影响文件的读写效率,开发过程中更多时候会以只读,只写方式来操作文件

r+,可读写文件,文件不存在就会报错

w+,先写在读,文件存在就重新编辑文件,不存在就创建新文件

(但是写入后无法直接读)

2.4.4 a,追加模式,不存在就创建新文件进行写入,存在则在原有内容的基础上追加新内容

文件指针:标记从哪个位置开始读写操作

     接下来我们来讨论w+写入之后读取的两种方式

1.写入之后关闭文件,再以只读的形式(或者默认形式)打开文件进行读取。

f = open('test1.txt','w+')
f.write('i like study')

f.close()

f = open('test1.txt')
print(f.read())      #i like study
f.close()

2.文件指针与文件定位

2.5文件定位操作

tell()和seek()

tell():显示文件内当前位置,即文件指针当前位置

seek(offset,whence):移动文件读取指针到指定位置

offset:偏移量,表示要移动的字节数

whence:起始位置,表示移动字节的参考位置,默认是0,0代表文件开头作为参考位置,1代表当前位置,2代表将文件结尾作为参考位置

seek(0,0)就会把文件指针移动到文件开头

f = open('test1.txt','w+')
f.write('i like study')
pos1 = f.tell()
print("当前文件指针的位置",pos1)    #当前文件指针的位置 12(文件内容长度)

f.seek(0,0)

pos2 = f.tell()
print("移动后文件指针的位置",pos2)  #移动后文件指针的位置 0

print(f.read())                 #i like study
f.close()

3.with open

作用:代码执行完,系统会自动调用f.close(),可以省略文件的关闭步骤

with open('test.txt','w') as f:   #f是文件对象
    f.write('today is a good day')
    print(f.closed)  #False
print(f.closed)      #True

4.编码格式

注意:file对象的encoding参数的默认值与平台有关,比如windows上默认编码字符编码为GBK

encoding表示编码集,根据文件的实际保存编码进行获取数据,对于我们而言,使用更多的是utf-8

凡是文件中涉及到中文写入读取的都建议将encoding改成utf-8/UTF-8

with open('test.txt','w',encoding='utf-8') as f:
    f.write('我爱中国')
with open('test.txt',encoding='utf-8') as f:
    print(f.read())     #我爱中国

4.1图片复制'rb'

1.读取图片,图片是一个二进制文件,想要写入必须先拿到

2.写入图片

with open(r"G:\照片\2afe269b-cd02-46d3-a0c7-9e9fa8d48bd51724476817746.jpeg",'rb') as file:
    #读取图片
    img = file.read()
    print(img)

#将读取内容写入到当前文件
with open('E:\project\pyhton-learning\PyCharm_project\pythonProject2_26\图片.jpg','wb') as f:
    f.write(img)

5.目录常用操作

导入模块 os

1.文件重命名 os.rename(旧名字,新名字)

2.删除文件 os.remove()

3.创建文件夹 os.mkdir()   --make

4.删除文件夹 os.rmdir()   --remove

import os
#文件重命名
os.rename('test1.txt','test2.txt')
#删除文件
os.remove('test.txt')
#创建文件夹
os.mkdir('panda')
os.mkdir('monkey')
#删除文件夹
os.rmdir('monkey')

5.获取当前目录 os.getcwd()

6.获取目录列表 os.listdir()

   获取上一级目录列表os.listdir('../')

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

半导体晶圆精控:ethercat转profient网关数据提升制造精度

数据采集系统通过网关连接离子注入机&#xff0c;精细控制半导体晶圆制造过程中的关键参数。 在半导体制造中&#xff0c;晶圆制造设备的精密控制是决定产品性能的关键因素。某半导体工厂采用耐达讯Profinet转EtherCAT协议网关NY-PN-ECATM&#xff0c;将其数据采集系统与离子注…

双臂机器人的动力学建模

双臂机器人的动力学建模是研究机器人在运动过程中的力学行为和动力学特性&#xff0c;主要目的是确定在给定的控制指令下&#xff0c;机器人各个关节或末端执行器所受的力与加速度之间的关系。建立动力学模型通常涉及以下几个步骤&#xff1a; 1. 定义机器人坐标系和关节空间 双…

驱动开发系列39 - Linux Graphics 3D 绘制流程(二)- 设置渲染管线

一:概述 Intel 的 Iris 驱动是 Mesa 中的 Gallium 驱动,主要用于 Intel Gen8+ GPU(Broadwell 及更新架构)。它负责与 i915 内核 DRM 驱动交互,并通过 Vulkan(ANV)、OpenGL(Iris Gallium)、或 OpenCL(Clover)来提供 3D 加速。在 Iris 驱动中,GPU Pipeline 设置 涉及…

中国的Cursor! 字节跳动推出Trae,开放Windows版(附资源),开发自己的网站,内置 GPT-4o 强大Al模型!

Trae是什么 Trae 是字节跳动推出的免费 AI IDE&#xff0c;通过 AI 技术提升开发效率。支持中文&#xff0c;集成了 Claude 3.5 和 GPT-4 等主流 AI 模型&#xff0c;完全免费使用。Trae 的主要功能包括 Builder 模式和 Chat 模式&#xff0c;其中 Builder 模式可帮助开发者从…

【洛谷排序算法】P1012拼数-详细讲解

洛谷 P1012 拼数这道题本身并非单纯考察某种经典排序算法&#xff08;如冒泡排序、选择排序、插入排序、快速排序、归并排序等&#xff09;的实现&#xff0c;而是在排序的基础上&#xff0c;自定义了排序的比较规则&#xff0c;属于自定义排序类型的题目。不过它借助了标准库中…

阿里云可观测全面拥抱 OpenTelemetry 社区

作者&#xff1a;古琦 在云计算、微服务、容器化等技术重塑 IT 架构的今天&#xff0c;系统复杂度呈指数级增长。在此背景下&#xff0c;开源可观测性技术已从辅助工具演变为现代 IT 系统的"数字神经系统"&#xff0c;为企业提供故障预警、性能优化和成本治理的全方…

STM32开发学习(三)----使用STM32CUBEMX创建项目

前言 开始正式接触代码&#xff0c;学习代码开发&#xff0c;先熟悉STM32CUBEMX软件&#xff0c;控制开发板的GPIO。(STM32F103C8T6)。 正式开始 1.打开软件 2.点击ACCESS TO MCU SELECTOR&#xff0c;进入软件选择&#xff0c;可能会弹出更新&#xff0c;等待更新完成即可。…

初识Skywalking

背景 筒子们&#xff0c;最近雷袭又接触到一项新工具&#xff1a;Skywalking&#xff0c;本着好东西要和大家分享的原则&#xff0c;在对它有了初步了解&#xff0c;草草的进行了实践之后&#xff0c;就迫不及待的把它推荐给大家了。在写本篇博客时&#xff0c;本人对Skywalkin…

【论文笔记】ClipSAM: CLIP and SAM collaboration for zero-shot anomaly segmentation

原文链接 摘要 近年来&#xff0c;CLIP 和 SAM 等基础模型在零样本异常分割 (ZSAS) 任务中展现出良好的性能。然而&#xff0c;无论是基于 CLIP 还是基于 SAM 的 ZSAS 方法&#xff0c;仍然存在不可忽视的关键缺陷&#xff1a;1) CLIP 主要关注不同输入之间的全局特征对齐&am…

1分钟用DeepSeek编写一个PDF转Word软件

一、引言 如今&#xff0c;在线工具的普及让PDF转Word成为了一个常见需求&#xff0c;常见的pdf转word工具有收费的wps&#xff0c;免费的有pdfgear&#xff0c;见下文&#xff1a; PDFgear:一款免费的PDF编辑、格式转化软件-CSDN博客 还有网上在线的免费pdf转word工具smallp…

内容中台的企业CMS架构是什么?

企业CMS模块化架构 现代企业内容管理系统的核心在于模块化架构设计&#xff0c;通过解耦内容生产、存储、发布等环节构建灵活的技术栈。动态/静态发布引擎整合技术使系统既能处理实时更新的产品文档&#xff0c;也能生成高并发的营销落地页&#xff0c;配合版本控制机制确保内…

【Uniapp-Vue3】开发userStore用户所需的相关操作

在项目根路径下创建的stores文件夹中创建user.js文件 并将以下内容复制到user.js中 import {ref} from "vue" import { defineStore } from pinia; const uniIdCo uniCloud.importObject("uni-id-co") const db uniCloud.database(); const usersTable…

PhotoShop学习01

了解Photoshop 这里省略了Photoshop的软件安装&#xff0c;请自行查找资源下载。 1.打开图片 下图为启动photoshop后出现的界面&#xff0c;我们可以通过创建新文件或打开已有文件来启用photoshop的工作界面。 可以通过左边的按钮进行新文件的创建或打开已有文件。 也可以点…

使用ZFile打造属于自己的私有云系统结合内网穿透实现安全远程访问

文章目录 前言1.关于ZFile2.本地部署ZFile3.ZFile本地访问测试4.ZFile的配置5.cpolar内网穿透工具安装6.创建远程连接公网地址7.固定ZFile公网地址 前言 在数字化的今天&#xff0c;我们每个人都是信息的小能手。无论是职场高手、摄影达人还是学习狂人&#xff0c;每天都在创造…

PyTorch 源码学习:GPU 内存管理之它山之石——TensorFlow BFC 算法

TensorFlow 和 PyTorch 都是常用的深度学习框架&#xff0c;各自有一套独特但又相似的 GPU 内存管理机制&#xff08;BFC 算法&#xff09;。它山之石可以攻玉。了解 TensorFlow 的 BFC 算法有助于学习 PyTorch 管理 GPU 内存的精妙之处。本文重点关注 TensorFlow BFC 算法的核…

Go语言--语法基础1

1、语言介绍 什么go语言 go&#xff08;又称 Golang &#xff09;是 Google开发的一种静态强类型、编译型、并发型&#xff0c;并具有 垃圾回收功能的编程语言. Go语言有一个吉祥物&#xff0c;下图所示的 Go Gopher 是加拿大的小动物&#xff0c;中文名叫作 囊地鼠 。 诞…

跟着官方文档学习UE C++ TArray容器系列 迭代

一.首先测试下&#xff0c;官方案例 迭代器的方法&#xff0c;有点不常见。有点像个指针&#xff0c;迭代完还自带break. oid AWXTArrayActor::WXLoopArray() {FString JoinedStr1;FString JoinedStr2;TArray<FString> StrArr { "Hello","Baby",&q…

esp工程报错:something went wrong when trying to build the project esp-idf 一种解决办法

最近上手了正点原子esp32s3板子&#xff0c;环境采用的是vscodeesp-idf插件。导入了正点原子的demo测试&#xff0c;每次都报这个错误无法建造。也不是网上说的ninja error&#xff0c;不是中文路径的问题。 在终端中查看&#xff0c;发现是缺少了git。&#xff08;我这里没有…

[ComfyUI]官方已支持Skyreels混元图生视频,速度更快,效果更好(附工作流)

一、介绍 昨天有提到官方已经支持了Skyreels&#xff0c;皆大欢喜&#xff0c;效果更好一些&#xff0c;还有GGUF量化版本&#xff0c;进一步降低了大家的显存消耗。 今天就来分享一下官方流怎么搭建&#xff0c;我体验下来感觉更稳了一些&#xff0c;生成速度也更快&#xf…

SpringBatch简单处理多表批量动态更新

项目需要处理一堆表&#xff0c;这些表数据量不是很大都有经纬度信息&#xff0c;但是这些表的数据没有流域信息&#xff0c;需要按经纬度信息计算所属流域信息。比较简单的项目&#xff0c;按DeepSeek提示思索完成开发&#xff0c;AI真好用。 阿里AI个人版本IDEA安装 IDEA中使…