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