什么是文件路径,Python中如何书写文件路径?
当程序运行时,变量是保存数据的好方法,但变量、序列以及对象中存储的数据是暂时的,程序结束后就会丢失,如果希望程序结束后数据仍然保持,就需要将数据保存到文件中。Python提供了内置的文件对象,以及对文件、目录进行操作的内置模块,通过这些技术可以很方便地将数据保存到文件(如文本文件等)中。
关于文件,它有两个关键属性,分别是“文件名”和“路径”。其中,文件名指的是为每个文件设定的名称,而路径则用来指明文件在计算机上的位置。例如,我的Windows7笔记本上有一个文件名为projects.docx(句点之后的部分称为文件的“扩展名”,它指出了文件的类型),它的路径在D:\demo\exercise,也就是说,该文件位于D盘下demo文件夹中exercise子文件夹下。
通过文件名和路径可以分析出,project.docx是一个Word文档,demo和exercise都是指“文件夹”(也称为目录)。文件夹可以包含文件和其他文件夹,例如project.docx在exercise文件夹中,该文件夹又在demo文件夹中。
注意,路径中的D:\指的是“根文件夹”,它包含了所有其他文件夹。在Windows中,根文件夹名为D:\,也称为D:盘。在OSX和Linux中,根文件夹是/。本教程使用的是Windows风格的根文件夹,如果你在OSX或Linux上输入交互式环境的例子,请用/代替。
另外,附加卷(诸如DVD驱动器或USB闪存驱动器),在不同的操作系统上显示也不同。在Windows上,它们表示为新的、带字符的根驱动器。诸如D:\或E:\。在OSX上,它们表示为新的文件夹,在/Volumes文件夹下。在Linux上,它们表示为新的文件夹,在/mnt文件夹下。同时也要注意,虽然文件夹名称和文件名在Windows和OSX上是不区分大小写的,但在Linux上是区分大小写的。
Windows上的反斜杠以及OSX和Linux上的正斜杠
在Windows上,路径书写使用反斜杠"\"作为文件夹之间的分隔符。但在OSX和Linux上,使用正斜杠"/"作为它们的路径分隔符。如果想要程序运行在所有操作系统上,在编写Python脚本时,就必须处理这两种情况。
好在,用os.path.join()函数来做这件事很简单。如果将单个文件和路径上的文件夹名称的字符串传递给它,os.path.join()就会返回一个文件路径的字符串,包含正确的路径分隔符。在交互式环境中输入以下代码:
>>> import os>>> os.path.join('demo', 'exercise')'demo\\exercise'123复制代码类型:[python]
因为此程序是在Windows上运行的,所以os.path.join('demo','exercise')返回'demo\\exercise'(请注意,反斜杠有两个,因为每个反斜杠需要由另一个反斜杠字符来转义)。如果在OSX或Linux上调用这个函数,该字符串就会是'demo/exercise'。
不仅如此,如果需要创建带有文件名称的文件存储路径,os.path.join()函数同样很有用。例如,下面的例子将一个文件名列表中的名称,添加到文件夹名称的末尾:
import os myFiles = ['accounts.txt', 'details.csv', 'invite.docx']for filename in myFiles: print(os.path.join('C:\\demo\\exercise', filename))1234复制代码类型:[python]
运行结果为:
C:\demo\exercise\accounts.txt C:\demo\exercise\details.csv C:\demo\exercise\invite.docx