1.文件路径
我们发现不管是写入还是写出操作,我们提供的都是文件名,其实这里准确说应该是文件路径。当我们简单把文件名传递给open函数时,Python将在当前执行程序的文件所在的目录中查找文件名所代表的文件。
根据组织文件的方式,可能需要打开不在当前执行程序文件所属目录中的文件。如果此时我们把该文件名传递给open函数那么会找不到该文件。要让Python打开不与当前执行程序文件位于同一路径下的文件时,需要提供文件路径,它让Python到系统的特定位置去查找。
提供文件路径的方式有两种:绝对文件路径和相对文件路径
1.1绝对文件路径
绝对文件路径,就是文件所在硬盘的具体路径。
我们通过PyCharm来复制文件的绝对路径
左键选中文件->右击->在菜单中选择Copy Path/Reference
选择Absolute Path
在使用绝对路径之前的程序如下所示:
将文件名修改为绝对路径之后,尝试运行程序
发现会报错,这是因为反斜杠\是转义字符,我们应该不让反斜杠\具有转义字符的功能,希望它成为字符串的一部分,我们可以在开头的单引号前加上r
在原本绝对路径字符串前加上r之后,发现程序运行的结果就符合我们的预想了。
1.2相对文件路径
相对文件路径,是相对当前执行文件的位置,一般是同级、上级目录、下级目录这三种。
1.2.1同级目录
同级目录情况下有两种书写方式,第一种是直接写文件名,我们之前就用的这种,不作过多介绍。第二种是用当前目录位置符-句点,编写程序如下所示。
斜杠代表目录层级
1.2.2下级目录
文件位置:
我们发现main主程序和down是同级目录,poems_down.txt,是down的下级目录,也就是说我们要打开的文件在下级目录里面。
我们知道了同级目录可以直接写文件名称或者./的方式,这里的down是同级目录,所以我们通过相对路径去寻找下级目录时,先找到同级目录,然后通过目录层级符/依次寻找到目标文件。在本例子中,我们只需down/poems_down.txt即可,编写程序如下所示。
1.2.3上级目录
文件位置:
我们发现main.py在main的目录之下,main文件夹和poems_up.txt是在同一级目录,所以说现在main.py要去打开上一级目录中的poems_up.txt,这里就需要用到上一级目录符号../,编写程序如下所示: