当前位置: 首页 > news >正文

(Python)文件储存的认识,文件路径(文件储存基础教程)(Windows系统文件路径)(基础教程)

前言:

通过不断的学习,我们在写编程的时候,因为每次运行后,计算机会清除这些相关数据,因此文件储存已经成为重要的一部分;在前面的学习中,我们了解过C语言的文件储存,也了解过C++的文件存储,今天我们来看一看Python的文件储存是怎么样的吧!

Windows文件路径:

文件管理方式:

对于一些刚接触到计算机的萌新来说,文件的管理和储存一定是一个非常头疼的问题:诶?我的电脑怎么卡了?C盘怎么满了?怎么选择下载路径啊?等等问题;

其实,每一个计算机都有很多的储存空间,我们一般称为内存;由于数量庞大不好管理,因此才有的文件路径,他就像一个公司一样,一层一层的管理着下一层,如:

此电脑就是最大的老板,他管理着各种盘,各种盘又是小领导,由往下接着管理,以此类推;

那什么是文件路径呢?

文件路径分为绝对路径和相对路径;

绝对路径:

对于Windows系统,绝对路径以分区名加反斜杠(\)开头,路径中每个目录之间用反斜杠进行分隔,最后以目标文件或目标目录结尾。

绝对路径是最直观的路径,他可以看到当前文件存在的地方:

(图片来自网络,如有侵权,立即删除)  

再比如:

可以看到,我的Python的绝对路径就是D:\Thonny\Thonny 

相对路径:

从一个参考位置出发。表示从指定文件位置出发,其他文件处于什么路径。

        用相对路径时,用点(.)表示参照物所在的目录,用点点(..)表示更上一层的父目录。如果继续往上走,就用点点(..)跟上斜杠或者反斜杠进行分隔,后面跟上点点(..)表示当前文件所属目录的父目录的父目录。如果是往更下层走,同样以斜杠或反斜杠来分隔路径中的目录。

        相对路径都是以点(.)或点点(..)开头。

./(.\)是可以省略的,在同一路径下相互用相对路径找到彼此,可以直接使用文件名。

(图片来自网络,如有侵权,立即删除) 

Python文件操作:

1.打开文件方法

比如open()方法,打开文件,括号内放文件路径,可以是相对路径也可以是绝对路径。

如:

f=open("./data.txt","w",encoding="UTF-8")    ##相对路径
f.write("你好,Python!\n")
f.write("我是张大炮")
f.close()f=open("/demo/data.txt","w",encoding="UTF-8")    ##绝对路径
f.write("你好,Python!\n")
f.write("我是张大炮")
f.close()

当然,如果你的项目py文件和你的文本文件在一个文件夹里,相对路径和绝对路径是一样的:

f=open("data.txt","w",encoding="UTF-8")
f.write("你好,Python!\n")
f.write("我是张大炮")
f.close()

open()方法的第二个参数表示模式,模式是一个字符串,常见的字符串有“r”,表示读取模式;“w”表示写入模式。当第二个参数不写的时候,默认为读取模式 ”r”。

读取模式下,如果找不到文件,就会报FileNotFoundError的错误,表示文件不存在

写入模式下,如果找不到文件,就会在当前项目py文件的文件夹里新建一个文本文件,不再报错

open()方法还有一个可选参数 encoding 表示编码方式。一般文件编码方式为 UTF-8。

如果open()方法执行成功,将会返回一个文件对象,后续可以对这个对象进行读取或写入操作。

如f,就是文件对象,后续可以进行一些操作,比如对f写入数据:

f=open("data.txt","w",encoding="UTF-8")
f.write("你好,Python!\n")                        #往文本里写入数据
f.write("我是张大炮")
f.close()                                         #关闭文件

2. 读取方法

read()读取方法一:

运行read()方法会一次性读取文件里面的所有内容,并以字符串的形式返回。一般操作的文件以文本为主。其他类似word文件内有字体颜色、字号区分的文件,很可能读取有误。

运行read()方法后,再次调用时返回的结果为空,因为程序会记录文件读取到哪个位置,第一次运行read()时已经读到结尾,第二次运行时后面已经没有内容。 

 可以看到,下面多出了一个空格换行,表示已经没有内容了

文件太大时不建议使用read()方法,因为读出来的内容会占用很大的内存。如果不需要一次性读取整个文件,可以在read()传一个数字,表示读多少个字节,下次调用read时会从上次结束位置继续往下读。

 可以看到每次只读5个,下次运行在读5个

readline()读取方法二:

只读取文件一行内容,下次调用时继续读取下一行,根据换行符来判断什么时候结束本行。并且换行符会被当成读到的内容的一部分。读取到结尾后,继续读取将会返回空字符串,表示后面已经无内容。

一定要注意到换行符,他相当于一个结束符

注意第一行与第二行之间的空格,他就是换行符也读取了 

readlines()读取方法三:

读取文件内容,并将每行作为列表元素返回。

如上图所示 ,每行结果都会变成列表元素,这样就可以使用list列表一样操作文本了

3.关闭文件:

close()方法就是关闭文本

调用close方法后将会释放系统资源,每次调用文件完成后都应该关闭文件。、

4.写入文件:

写文件与读文件类似,都需要先打开文件,并且在操作完成后关闭文件。

open的第二个参数传入w,即为写文件模式,写文件模式找不到文件,不会像读文件模式那样报错,而是自动创建传入文件名的那个文件。第三个参数为encoding编码格式。

f=open("data.txt","w",encoding="UTF-8")
f.write("你好,Python!\n")                        #往文本里写入数据
f.write("我是张大炮")
f.close()                

使用w模式打开文件进行写入时,如果文件已存在,将会把原有文件内容全部清空。

f=open("data.txt","w",encoding="UTF-8")
f.write("你好,Python!\n")                        
f.write("我是张大炮")
f.close()                                         
f=open("data.txt","w",encoding="UTF-8")
f.write("第一行\n")                        
f.write("第二行")
f.close()                                         
f=open("data.txt","r",encoding="UTF-8")
print(f.readlines())
f.close()

 如上面的代码运行结果就是:

只有第一行第二行数据,没有你好数据 

如果不想重写文件内容,而是增加文件内容,则open()的第二个参数需要传入附加模式”a”参数。如果文件名不存在,会直接创建文件。如图:

无论是”w”模式,还是”a”模式,都不能读取文件原本的内容,如果在这两个模式下调用read()方法,程序会报错不支持读操作(UnsupporttedOperation)。

5.r+,同时支持读写文件

open()方法的第二个参数传入”r+”参数,就可以同时支持读写文件。

边读边写。

注:该代码是本人自己所写,可能不够好,不够简便,欢迎大家指出我的不足之处。如果遇见看不懂的地方,可以在评论区打出来,进行讨论,或者联系我。上述内容全是我自己理解的,如果你有别的想法,或者认为我的理解不对,欢迎指出!!!如果可以,可以点一个免费的赞支持一下吗?谢谢各位彦祖亦菲!!!!

http://www.dtcms.com/a/299692.html

相关文章:

  • 嵌入式分享#27:原来GT911有两个I2C地址(全志T527)
  • 数据湖产品全解析:2025 年主流解决方案选型指南
  • 酒店智能门锁SDK新V门锁系统接口函数[2025版]Delphi 7.0——东方仙盟硬件接口库
  • AI三巨头:机器学习、深度学习与人工智能解析
  • k8s:利用kubectl部署nginx
  • window10和ubuntu22.04双系统之卸载ubuntu系统
  • 方案C,version2
  • Fast_Lio 修改激光雷达话题
  • 【动态规划-斐波那契数列模型】理解动态规划:斐波那契数列的递推模型
  • 【Canvas技法】绘制正N角星
  • 【机器学习-1】特征工程与KNN分类算法
  • 鲲鹏服务器logstash采集nginx日志
  • 微分方程入门之入门之入门,纯笔记
  • Android Jetpack 组件库 ->WorkManager
  • 【Keepalived】高可用集群
  • Illustrator 删除编辑记录
  • 【简述】C++11/14/17/20/23 中的关键新特性
  • MPI练习:前缀和问题
  • 泛微OA8前台SQL注入
  • GPU运维常见问题处理
  • [硬件电路-93]:模拟器件 - 晶体管的静态工作点,让晶体管工作在其放大电路舞台的中央!!!
  • 企业级 AI 工具选型报告:9 个技术平台的 ROI 对比与部署策略
  • JavaScript:现代Web开发的核心动力
  • 无刷电机行业新一代AI智能化MES系统解决方案
  • LLM参数优化算法与经典理论揭秘
  • JVM 基础架构全解析:运行时数据区与核心组件
  • flask健康减脂饮食推荐—计算机毕业设计源码—07378
  • Oracle 误删数据恢复
  • BGP路由协议-LOCAL_PREF、AS_PATH和MED等属性
  • 【科研绘图系列】R语言绘制误差连线散点图