python文件(概念、基本操作、常用操作、文本文件的编码方式)

news2024/11/18 11:18:34
嗨喽,大家好呀~这里是爱看美女的茜茜呐


👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~

python源码、视频教程、插件安装教程、资料我都准备好了,直接在文末名片自取就可


1. 文件的概念

1.1 文件的概念和作用

计算机的文件,就是存储在某种长期储存设备上的一段数据

长期存储设备包括:硬盘、U 盘、移动硬盘、光盘…

文件的作用

将数据长期保存下来,在需要的时候使用

1.2 文件的存储方式

在计算机中,文件是以二进制的方式保存在磁盘上的

文本文件和二进制文件

  • 文本文件

    可以使用文本编辑软件查看

    本质上还是二进制文件

    例如:python 的源程序

  • 二进制文件

    保存的内容 不是给人直接阅读的,而是提供给其他软件使用的

    例如:图片文件、音频文件、视频文件等等

    二进制文件不能使用文本编辑软件查看

2. 文件的基本操作

2.1 操作文件的套路

在计算机中要操作文件的套路非常固定,一共包含三个步骤:

  1. 打开文件

  2. 读、写文件

    读将文件内容读入内存

    写将内存内容写入文件

  3. 关闭文件

2.2 操作文件的函数/方法

在Python中要操作文件需要记住 1 个函数和 3 个方法

open函数负责打开文件,并且返回文件对象

read/write/close三个方法都需要通过文件对象来调用

2.3 read 方法 —— 读取文件

open函数的第一个参数是要打开的文件名(文件名区分大小写)

如果文件存在,返回文件操作对象

如果文件不存在,会抛出异常

read方法可以一次性读入并返回文件的所有内容

close方法负责关闭文件

如果忘记关闭文件,会造成系统资源消耗,而且会影响到后续对文件的访问

注意:read方法执行后,会把文件指针移动到文件的末尾

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
#1.打开-文件名需要注意大小写
file = open("README")
 
#2.读取
text = file.read()
print(text)
 
#3.关闭
file.close()

提示

在开发中,通常会先编写打开和关闭的代码,再编写中间针对文件的读/写操作!

文件指针(知道)

文件指针标记从哪个位置开始读取数据

第一次打开文件时,通常文件指针会指向文件的开始位置

当执行了read方法后,文件指针会移动到读取内容的末尾

默认情况下会移动到文件末尾

思考

如果执行了一次read方法,读取了所有内容,那么再次调用read方法,还能够获得到内容吗?

答案

不能

第一次读取之后,文件指针移动到了文件末尾,再次调用不会读取到任何的内容

2.4 打开文件的方式

open函数默认以只读方式打开文件,并且返回文件对象

语法如下:

f = open("文件名","访问方式")

提示

频繁的移动文件指针,会影响文件的读写效率,开发中更多的时候会以只读、只写的方式来操作文件

写入文件示例

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 打开文件
f = open('README','w')
 
f.write('hello python ! \n')
f.write('今天天气真好')
 
#关闭文件
f.close()
2.5 按行读取文件内容

read方法默认会把文件的所有内容一次性读取到内存

如果文件太大,对内存的占用会非常严重

readline方法

readline方法可以一次读取一行内容

方法执行后,会把文件指针移动到下一行,准备再次读取

读取大文件的正确姿势

#打开文件
file = open("README")
 
while True:
    #读取一行内容
    text = file.readline()
    
    #判断是否读到内容
    if not text:
        break
        
    #每读取一行的末尾已经有了一个'\n'
    print(text, end="")
    
#关闭文件
file.close()
2.6 文件读写案例 —— 复制文件

目标

用代码的方式,来实现文件复制过程

小文件复制

打开一个已有文件,读取完整内容,并写入到另外一个文件

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
#1.打开文件
file_read = open('README')
file_write = open('README[复件]','w')
 
#2.读取并写入文件
text = file_read.read()
file_write.write(text)
 
#3。关闭文件
file_read.close()
file_write.close()

大文件复制

打开一个已有文件,逐行读取内容,并顺序写入到另外一个文件

#1.打开文件
file_read = open('README')
file_write = open('README[复件]','w')
 
#2.读取并写入文件
while True:
    #每次读取一行
    text = file_read.readline()
    
    #判断是否读取到内容
    if not text:
        break
        
    file_write.write(text)
#3.关闭文件
file_read.close()
file_write.close()

3. 文件/目录的常用管理操作

在终端/文件浏览器、 中可以执行常规的文件/目录管理操作,例如:

创建、重命名、删除、改变路径、查看目录内容、……

在Python中,如果希望通过程序实现上述功能,需要导入os模块

文件操作

目录操作

提示:文件或者目录操作都支持相对路径和绝对路径

4. 文本文件的编码格式(科普)

文本文件存储的内容是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等

  • Python 2.x 默认使用ASCII编码格式

  • Python 3.x 默认使用UTF-8编码格式

4.1 ASCII 编码和 UNICODE 编码

ASCII编码

计算机中只有256个ASCII字符

一个ASCII在内存中占用1 个字节的空间

8个0/1的排列组合方式一共有256种,也就是2 ** 8

UTF-8编码格式

计算机中使用1~6 个字节来表示一个UTF-8字符,涵盖了地球上几乎所有地区的文字

大多数汉字会使用3 个字节表示

UTF-8是UNICODE编码的一种编码格式

4.2 Ptyhon 2.x 中如何使用中文
  • Python 2.x 默认使用ASCII编码格式

  • Python 3.x 默认使用UTF-8编码格式

在 Python 2.x 文件的第一行增加以下代码,解释器会以utf-8编码来处理 python 文件

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# *-* coding:utf8 *-*
这方式是官方推荐使用的!

也可以使用

# coding=utf8

unicode 字符串

在Python 2.x中,即使指定了文件使用UTF-8的编码格式,但是在遍历字符串时,仍然会以字节为单位遍历字符串

要能够正确的遍历字符串,在定义字符串时,需要在字符串的引号前,增加一个小写字母u,告诉解释器这是一个unicode字符串(使用UTF-8编码格式的字符串)

#在字符串前,增加一个“u表示这个字符串是一个utf8字符串
hello_str =u"你好世界"
 
print(hello_str)
 
for c in hello_str:
    print(c)

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

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

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

相关文章

python装13的一些写法

一些当你离职后,让老板觉拍大腿的代码 1. any(** in ** for ** in **) 判断某个集合元素,是否包含某个/某些元素 代码: if __name__ __main__:# 判断 list1 中是否包含某个/某些元素list1 [1,2,3,4]a any(x in [5,4] for x in list1) 输…

深拷贝与浅拷贝,就是这么简单

目录 1.拷贝的概念2.浅拷贝2.1. 浅拷贝的定义2.2. 浅拷贝的实现方式2.3 在内存中: 3. 深拷贝3.1. 深拷贝的定义3.2. 深拷贝的实现方式3.3 在内存中 4. 深拷贝与浅拷贝的区别5. 原型模式与深浅拷贝的关系6. 总结 1.拷贝的概念 在编程中,拷贝(或…

循环神经网络--01 序列模型

生成数据 import torch from torch import nn from d2l import torch as d2lT 1000 time torch.arange(1,T1,dtypetorch.float32) x torch.sin(0.01*time)torch.normal(0,0.2,(T,)) d2l.plot(time,x,time,xlim[1,1000],figsize(6,3))将序列转换为特征-标签对(fe…

【大数据之Kafka】十五、Kafka-Kraft模式

1 Kafka-Kraft架构 左图为 Kafka 现有架构,元数据在 zookeeper 中,运行时动态选举 controller,由controller 进行 Kafka 集群管理。   右图为 kraft 模式架构(实验性),不再依赖 zookeeper 集群&#xff0…

以服务方式启动安防监控系统EasyNVR程序出现播放异常,是什么原因?

EasyNVR安防视频监控平台的特点是基于RTSP/Onvif协议,将前端设备统一接入,在平台进行转码、直播、处理及分发,在智慧安防视频监控场景中,EasyNVR可实现实时监控、云端录像、检索与回放、云存储、告警、级联等视频能力,…

湖南株洲三维扫描检测CNC机加工零件截面检测弧度测量-CASAIM中科广电

自工业时代开始以来,机械加工及零部件产业已经涵盖了各大电器零部件、汽车零部件、建筑机械零部件、航空航天零部件、海洋工程零部件等领域,涉及多种机械机床及工具仪器的制造。 零件在加工过程中,受制于加工工艺等各方面的因素,…

Tomcat调优【精简版】

Tomcat调优 优化Tomcat内存分配 调整Tomcat启动脚本contalina.sh,设置tomcat启动时分配的内存很可使用的最大内存; CATALINA_OPTS 调整Tomcat线程池 Tomcat默认使用的线程池:ThreadPoolExecutor 可以通过修改server.xml的 Connector 节点下的 maxThreads、minSpareThread…

关于删除的一些小纰漏

前端ajax如果传参不正确,会报500的错,可能是路径文件夹名字不对,一定要确认好,大写与小写的区别:question/QuestionStem_deleteList.do?ids"ids, 还有后面要加get请求后面要加"id",然后后面要加入传的…

004:vue使用relation-graph实现关系图谱

文章目录 1. 效果2. relation-graph简介3. 安装及使用4. 其他更多示例 1. 效果 2. relation-graph简介 这是一个Vue关系图谱组件,可以展示如组织机构图谱、股权架构图谱、集团关系图谱等知识图谱,可提供多种图谱布局,包括树状布局、中心布局…

神经网络训练防止过拟合和欠拟合的方法

神经网络训练防止过拟合和欠拟合的方法 1 过拟合的概念2 欠拟合的概念3 防止过拟合和欠拟合的方法 1 过拟合的概念 如上图所示,模型在训练时表现较好,在验证或测试时,表现较差,即表示过拟合。 过拟合的本质是模型对训练样本过度学…

Linux CentOS7 wc命令

wc命令的功能为统计指定文件中的字节数、字数、行数, 并将统计结果显示输出。 录入 man wc 可以查看相关信息 基本语法: wc [选项] 文件… 说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也…

Online Fast Adaptive Low-Rank Similarity Learning for Cross-Modal Retrieval部分复现

表1 我的结果: R50条件下的均值:0.52889 Rall条件下的均值:0.430458

Vue 学习笔记 错误ResizeObserver loop completed with undelivered notifications

环境Vue3 Ts 使用了el-table 后,容易出现如下错误 ERROR ResizeObserver loop completed with undelivered notifications. at handleError (webpack-internal:///./node_modules/webpack-dev-server/client/overlay.js:299:58) at eval (webpack-internal:///./nod…

pytorch代码实现之动态卷积模块ODConv

ODConv动态卷积模块 ODConv可以视作CondConv的延续,将CondConv中一个维度上的动态特性进行了扩展,同时了考虑了空域、输入通道、输出通道等维度上的动态性,故称之为全维度动态卷积。ODConv通过并行策略采用多维注意力机制沿核空间的四个维度…

全局异常处理器@RestControllerAdvice解析 Springboot项目异常处理 JavaWeb @ExceptionHandler

RestControllerAdvice public class GlobalExceptionHandler {ExceptionHandler(Exception.class)//指定捕获异常类型:所有public Result ex(Exception ex){ex.printStackTrace();return Result.error("对不起,出现异常,请联系管理员");}}RestControllerAdvice注解在…

基于Yolov8的野外烟雾检测(1)

目录 1.Yolov8介绍 2.野外火灾烟雾数据集介绍 2.1数据集划分 1.2 通过voc_label.py得到适合yolov8需要的txt 2.3生成内容如下 3.训练结果分析 4.系列篇 1.Yolov8介绍 Ultralytics YOLOv8是Ultralytics公司开发的YOLO目标检测和图像分割模型的最新版本。YOLOv8是一种尖端的…

1千听歌猜歌名疯狂猜歌ACCESS\EXCEL数据库

就是从今年开始,各类的“猜”游戏开始火爆,先是猜图,比如看图猜明星、看图猜成语、看图猜电影、看图猜电视剧、看图猜背景、看图猜游戏、看图猜影视人物、看图猜景点等。然后又开始猜音频,猜音频最多的是歌。甚至现在的《一站到底…

每日一题:请解释什么是闭包(Closure)?并举一个实际的例子来说明。(前端初级)

今天继续在前端初级笔试题中被AI虐: 碱面的答案,问题:初级,回答:初级https://bs.rongapi.cn/1702510598371151872/14我的回答如下: 闭包是指由大括号包裹的一个区域,这个区域代表了一个变量生效…

【数据分享】我国六普的乡镇(街道)人口数据(免费获取)

人口数据是我们在各项研究中都经常使用的数据!人口数据的主要来源是人口普查,全国性的人口普查每十年进行一次。最近三次的人口普查分别是:2000年的第五次全国人口普查,简称五普;2010年的第六次全国人口普查&#xff0…

海外网红营销安全指南:品牌必须遵守的10大法律法规

随着互联网的普及和社交媒体的崛起,品牌们越来越倾向于与海外网红合作,以扩大其在全球市场的影响力。然而,这一战略并非没有风险,因为在不同国家和地区,存在着各种各样的法律法规,可能会影响品牌与海外网红…