在用python的open()函数打开文件时,如果只是将文件名传递给函数,而不指定文件路径,那么python将在当前执行的文件(即.py程序文件)所在的目录查找,例如:
with open('test.txt') as file_object:
contents = file_object.read()
print(contents)
如果文件在另外一个目录下,需要指定目录的路径。可以用相对路径,也可以用绝对路径。
假设项目的布局如下:其中test.txt是要被打开的文本文件,hello_world.py是当前的执行文件
相对路径
hello_world.py
with open('data/test.txt') as file_object:
contents = file_object.read()
print(contents)
注意:显示文件路径时,Windows系统使用反斜杠(\
),而不是斜杠(/
),但在代码中依然可以使用斜杠。
注意:如果直接使用反斜杠,将引发错误,因为反斜杠用于对字符串中的字符进行转义。如果一定要使用反斜杠,可以对路径中的每个反斜杠都进行转义。如下所示:
with open('data\\test.txt') as file_object:
contents = file_object.read()
print(contents)
绝对路径
在相对路径行不通时,可以使用绝对路径。
绝对路径通常比较长,因此将其赋给一个变量,再将该变量赋给open(),会显得更加简洁,例如:
file_path = 'D:/temp/eclipse-workspace/python_work/python_demo/data/test.txt'
with open(file_path) as file_object:
contents = file_object.read()
print(contents)
如果在路径中使用反斜杠,要对每个反斜杠进行转义,如下:
file_path = 'D:\\temp\\eclipse-workspace\\python_work\\python_demo\\data\\test.txt'
with open(file_path) as file_object:
contents = file_object.read()
print(contents)