Python基础——文件

论坛 期权论坛 期权     
医数思维云课堂   2019-6-30 04:28   2504   0



作者丨文静
来源丨医数思维云课堂(ID:Datamedi)   
文件(file)1、 通过python程序来对计算机中的各种文件进行增删改查的操作。
2、 I/O(Input/Output),文件的输入输出。
3、 操作文件的步骤:
  • (1)打开文件
  • (2)对文件进行各种操作(读、写),然后保存
  • (3)关闭文件
4、 打开文件:
使用open()函数来打开一个文件,参数:file是要打开的文件的名字(路径),首先创建一个变量,来保存文件的名字,然后file_name='demo.txt' open(file_name)
5、 返回值:
返回一个对象,这个对象就代表了当前打开的文件。
例如:
file_name='demo.txt'
file_obj=open(file_name)
print(file_obj)#证明文件存在且一打开

6、 如果目标文件和当前文件在同一级目录下,则直接使用文件名即可。
如果不在同一级目录下,比如demo.txt,在hello文件夹中,则要file_name='hello/demo.txt'
7、 表示路径,可以使用..来返回一级目录
例如:
file_name='../hello/demo.txt'




8、如果目标文件距离当前文件比较远,比如说文件在桌面,此时可以使用绝对路径,绝对路径应该从磁盘的根目录开始书写,win+r可弹出搜索窗口-再输cmd回车调出命令窗口-cd Desktop-输入dir-粘贴路径
例如:
file_name=r'C:/Users/茶茶/Desktop/demo.txt'

9、读取文件:
首先打开桌面的文件
file_name=r'C:/Users/茶茶/Desktop/demo.txt'

file_obj=open(file_name) print(file_obj),然后读取文件中的内容,当我们获取了文件对象以后,所有的对文件的操作都应该通过对象来进行。
读取内容,用read()方法,它会将内容全部保存为一个字符串返回。
例如:
content=file_obj.read()
print(content)

这个程序会自动关闭。
10、关闭文件:
调用close()方法来关闭文件
例如:
file_obj.close()

此时再输入content=file_obj.read() print(content),就会报错。
11、with…as语句:
在with语句中可以直接使用file_obj来做文件操作,此时这个文件只能在with中使用,一旦with结束,则文件会自动结束。
这个会简化一些,不用手动关闭文件了。
例如:
file_name=r'C:/Users/茶茶/Desktop/demo.txt'
with open(file_name) as file_obj:
print(file_obj.read())

12、对异常信息应用,捕获错误信息:
例如:
file_name=r'C:/Users/茶茶/Desktop/hello.txt'
try:
with open(file_name) as file_obj:
print(file_obj.read())
except FileNotFoundError:
print(f'{file_name}文件不存在~~')

13、文件的简单读取:
调用open()来打开一个文件,可以将文件分成两种类型:
  • 一种是纯文本文件(使用utf-8等编码编写的文件)
  • 另一种是二进制文件(图片、mp3、ppt等文件)
通过read()来读取文件中的内容,默认是以文本文件的形式打开的。
通过open()默认的编码为None,所以处理文本文件时,必须要指定文件的编码。
中文文件要加个encoding='utf-8'。
14、如果要读取的文件较大的话,会一次性将文件的内容加载到内存中,导致内存泄漏,所以对于较大的文件,不要直接调用read(),read()可以接收一个size作为参数,该参数用来指定要读取的字符数量,默认值为-1,它会读取文件中的所有字符。
可以为size指定一个值,这样read()会读取指定数量的字符,每一次读取都是从上次读到位置开始读取的,如果字符的数量小于size,则会读取剩余所有的,如果已经读取到了文件的最后,则会返回空串' '。
例如:
file_name=r'C:/Users/茶茶/Desktop/demo2.txt'
with open(file_name) as file_obj:
content=file_obj.read(-1)
print(content)
print(len(content))

读取前七个字符:
file_name=r'C:/Users/茶茶/Desktop/demo2.txt'
with open(file_name) as file_obj:
content=file_obj.read(7)
print(content)
print(len(content))

继续再读七个字符:
file_name=r'C:/Users/茶茶/Desktop/demo2.txt'
with open(file_name) as file_obj:
content=file_obj.read(7)
content=file_obj.read(7)
print(content)
print(len(content))




15、readline()每次读一行,readlines()会一次性将读取到的内容封装到一个列表中返回。
例如:
file_name=r'C:/Users/茶茶/Desktop/demo2.txt'
with open(file_name) as file_obj:
print(file_obj.readline())
print(file_obj.readline())

16、也可以用for循环
例如:
file_name=r'C:/Users/茶茶/Desktop/demo2.txt'
with open(file_name) as file_obj:
for t in file_obj:
print(t)

17、write()来向文件中写入内容,如果操作的是一个文本文件的话,则write()需要传递一个字符串作为参数,使用open()打开文件时必须要指定打开文件时索要做的操作(读、写、追加),如果不指定操作类型,则默认是读取文件。
而读取文件时,是不能向文件中写入的,r表示只读的,w表示是可写的,使用w来写入文件时,如果文件不存在会创建文件,如果文件存在则会截断文件。
截断文件指删除原来文件中的所有内容。
该方法可以分多次向文件中写入内容。
例如:
file_name=r'C:/Users/茶茶Desktop/demo.txt'
with open(file_name,'w') as file_obj:
file_obj.write('hello hello how are you!')

例如:
file_name=r'C:/Users/茶茶/Desktop/demo3.txt'
with open(file_name,'w') as file_obj:
file_obj.write('hello hello how are you!')

例如:
file_name=r'C:/Users/茶茶/Desktop/demo.txt'
with open(file_name,'w') as file_obj:
file_obj.write('hello hello how are you!')
file_obj.write('hello hello how are you!')
file_obj.write('hello hello how are you!')

18、a表示追加内容,如果文件存在,则会向文件中追加内容,r+表示既可读也可写,文件不存在会报错。
例如:
file_name=r'C:/Users/茶茶/Desktop/demo.txt'
with open(file_name,'a') as file_obj:
file_obj.write('hello hello how are you!')
file_obj.write('hello hello how are you!')
file_obj.write('hello hello how are you!')

19、x用来新建文件,如果文件不存在则创建,存在则报错。
想要了解更多,可以点击阅读全文哦




往期推荐

点击图片直达原文






关注医数思维云课堂——医数思维云课堂(ID:Datamedi),每周四20:00准时更新课程,陪60万医学生共同成长,转载请联系我们授权。

觉得“好看”,请点这里↓↓↓
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP