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,这里就需要用到上一级目录符号../,编写程序如下所示: