Python 学习总结 基础篇 文件的读写

Python

文件读写

文件的分类

文件分为文本文件和二进制文件。
文本文件: 文本文件基于字符编码,以字符的Unicode码值进行存储和编码。 文本文件可以存储大量的数据, 天气数据,交通数据,社会经济数据等。
二进制文件 基于值编码的文件,存储的是二进制数据

对文件的操作步骤

对文件的操作主要分为三步:
打开文件 => 读写文件 => 关闭文件

示例
先创建一个文本文件:
在这里插入图片描述
存储路径和python文件存储路径相同。

python文件:
第一种读去文件方式:

with open('digits.txt') as file_object:
    contents = file_object.read()
    print(contents)

运行结果:
在这里插入图片描述
第二种打开文件的方式:

contents=open('digits.txt')
print(contents.read())
contents.close()

在这里插入图片描述
两种方法的区别:
第一种方法用with open打开,好处在于用关键字with在不需要访问文件后会自动将文件关闭。所以只用到了open()方法,而没有close()方法。 而如果用open() 和close() 来打开关闭文件,必须保证从open()到close()之间的代码都不会运行错误,一旦错误就可能导致文件无法关闭。而文件长期打开可能会导致数据丢失或者受损。并且如果过早的关闭文件,在后期需要继续调用文件时又得重新打开造成麻烦,所以用with open() 打开文件更好

用第一种方法打开文件,就把关闭文件的任务交给了python,让它自己在合适的时候关闭,开发只管使用就好

文件路径

当你要打开的文件和你的python文件不在同一个文件夹中时,则需要用到相对路径绝对路径

相对路径

相对路径就是相对于python.py文件的文件路径。 注意是相对于.py文件,所以使用相对路径后python会从.py文件所在的目录,根据所给的文件路径去找到指定的文件
示例:
当文件是在.py文件夹的子文件中
文本文件text.txt的目录:
在这里插入图片描述
test.py文件目录
在这里插入图片描述
test.py中的代码

with open('txt/test.txt') as file_object:
    contents=file_object.read()
    print(contents)

运行结果:
在这里插入图片描述
注意点
**写文件路径的时候,不能直接将文件夹中的路径复制过来,因为在windows 系统中,文件路径用的是反斜杠 \ **
在这里插入图片描述
而python是用斜杠来表示路径,否则会报错。

当要打开的文件在python文件的父文件中时:

with open('../testInFather.txt') as file_object:
    contents=file_object.read()
    print(contents)
with open('../../digits.txt') as file_object:
    contents=file_object.read()
    print(contents)

运行结果:
在这里插入图片描述

用 …/ 表示在相对当前文件的上一层中查找,有几层就用几个…/
文件目录如下:
在这里插入图片描述

绝对路径

就是写死的文件路径,从硬盘第一层开始往下找。
示例:

with open('E:/python文档/python/test/txt/test.txt') as file_object:
    contents=file_object.read()
    print(contents)
with open('E:/python文档/python/testInFather.txt') as file_object:
    contents=file_object.read()
    print(contents)

运行结果:

在这里插入图片描述
写这个路径很简单,只需要打开电脑中的文件目录,复制过来,再把反斜杠改成斜杠就行。

绝对路径利弊
好处就是简单无脑,基本找到要打开的文件,复制路径就行。
弊处也很明显,而且很致命,就是不利于程序的移植。 这个路径在你的电脑可以打开,但是一旦把程序移到其他电脑,基本就不行了。 所以推荐使用相对路径

文件的操纵

读文件 方法
方法作用
.read()读取整个文件到字符串中 例: test=handle.read()
.read(n)从文件从读取n个字符到字符串中 例: test=handle.read(n)
.readline()从文件读一行数据到字符串
.readlines()读取整个文件并创建列表
.seek()定位文件指针

示例:

with open('txt/test.txt','r') as file_object:
    contents=file_object.read()
    print(contents)
print('\n')
with open('txt/test.txt','r') as file_object:
    contents=file_object.read(5)
    print(contents)
print('\n') 
with open('txt/test.txt','r') as file_object:
    print(file_object.readline())
print('\n') 
with open('txt/test.txt','r') as file_object:
    print(file_object.readlines())

在这里插入图片描述

写文件 方法
方法作用
**.write() **文本数据写入到文件
.writelines()字符串列表按行写入文件

示例代码:

with open('txt/test.txt','w') as file_object:
    file_object.write("hello,")
    file_object.write("everybody")

运行后打开文本文件:
在这里插入图片描述
这是以w写入文件的方式打开,写入数据会覆盖原有数据,如果想不让元数据被修改可以改成用a附加数据方式打开

文本文件的打开方式

模式说明
"r"以读取文件的方式打开文件
"w"以写入文件的方法打开文件
"a"以添加数据的方式打开文件
"r+"打开文件以读取和写入数据
"w+"打开文件以写入和读取数据
"a+"打开文件以添加和读取数据

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值