开发者学堂课程【Python 语言基础 3:函数、面向对象、异常处理:打开文件】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/601/detail/8766
打开文件
内容简介
一、文件
二、Open 返回值
三、总结
一、文件(file)
在我们的计算机里一切皆是文件,比如说 “01.异常.py” 这是一个文本文件,电脑桌面上的所有图标快捷方式也是文件,随便一个软件打开文件所在位置会发现里面是各种各样的文件,包括看的电影、图片,听的音乐,所有在计算机里存的东西都是文件。我们可以手动的对这些文件进行操作,同样在 python 中也可以通过程序对文件进行操作。
所以,这里所说的文件是指:
1、通过 python 程序对计算机中的各种文件进行增删改查的操作。
2、文件还有另一个名字叫做 i/o(input/output)input 是输入,output 是输出。注意这都是对我们人来讲的,input 是指人通过程序从计算机中读取信息向人输入,同样,output 是指从人这里把一些信息输出到文件里。
3、操作文件的步骤:
①打开文件
②对文件进行各种操作(读、写),然后保存
③关闭文件
这是手工去操作一个文件的步骤。同样在 python 里对文件进行操作也需要经历这三个步骤。
通过 python 创建一个文件名叫 demo.txt 的文件,文件里写入 lorem 然后按下 tab 键回车会自动生成。
这个英文文本没有任何意义,只是一个测试排版的文本。
现在想要打开 demo.txt 的文件,需要使用 python 的内接函数,找到文档中的Library Reference,打开 Built-in Functions,找到 open(),找到函数
open(file, mode='r, uffering-g-1 encoding=None, errors -
None, newine=None, closefd= True, opener-None)
复制粘贴进 python。这就是一个打开文件的函数。
这里 file 是要打开的文件的名字(路径)
这里创建一个变量,来保存文件的名字:file
name=‘demo.txt’
这时候直接用open(file
name
)作为第一个参数传进去,这就是打开file name对应的文件。如何验证文件是不是打开呢?只要不报错就是打开了。方法是先改一个file
name=‘demo123.txt’
执行会发现报错了。
但是这个错误实际上跟file没有任何关系,因为报的是语法的错误,是编码的问题。报这个错误是因为一开始使用代码时里面有一个 encoding=None
,这 在 python中会被解析成要设置文件的编码,所以报错。要避免这种报错只需要修改一下,加一个下划线encoding
=None
就可以了。这个时候执行报文件报的错就是我们文件的错误了。
报错的原因是因为刚才把文件的名给改成了 demo123.txt。文件名修改到最开始的名字就可以正常打开了。所以以后打开文件就用 open函数。
二、Open 返回值
返回一个对象,这个对象代表了当前打开的文件。比如file
obj= open
(file
name)#
打开 file name 对应的文件。 直接print(file
obj)
保存打印会出现。
表明这个对象确实存在,已经打开了。如果目标文件和当前文件在同一级目录下,则直接使用文件名即可。如果不在同一级目录下,比如创建一个文件名叫 hello 位于上一级把 demo.txt 文件移到 hello 里,这个时候就必须使用完整的路径:
File
name=‘hello/demo.txt’
保存执行才能够找到并打开文件。这里要注意如果是同一级目录下直接使用文件名就可以,而不在同一级目录中则需要把路径加上。
在 w indows 里表示一个路径的时候应该用的是\,但是在这里使用\的话会出现问题,因为 在 python 里 \ 代表的是转义字符。所以在 windows 系统使用路径时,可以使用 / 代替\。或者可以使用 \\ 代替 \,或者也可以使用原始字符串。原始字符串就是在字符串前加r比如:
file
name=r‘hello\demo.txt
这时候里边的转义字符就会被忽略。
现在把 hello 文件在往上移一级,file
name=r‘hello\demo.txt
这个字符串就没有效果了,所以表示路径,可以使用..来返回上一级目录。
现在是在 code,需要先到 hello 里所以:file name=‘../hello/demo.txt’
。这里..就表示需要从当前目录出来也就是 code,出来后再去 hello 里边找demo.txt。保存执行后就可以找到 demo.txt 文件了。
如果目标文件距离当前文件比较远,此时可以使用绝对路径。
绝对路径应该从磁盘的根目录开始书写,比如桌面上的快捷方式就需要打开文件所在位置全部复制路径:
file
name=‘D:\QQ\Bin\QQScLauncher.exe’
注意这里\需要改成/或者使用原始字符串加上 r。
这就是一个绝对根路径,保存执行也可以找到目标文件。
三、总结
如果文件在当前目录下直接写文件名,如果不在当前目录下要写路径,如果不在路径里面用..返回,如果绝对路径比较远,需要使用文件的绝对路径。