这是一个常见的误解,相对路径是相对于python脚本的位置,但这是不正确的 . 相对文件路径始终相对于当前工作目录,并且当前工作目录不必是python脚本的位置 .
你有三个选择:
Use an absolute path to open the file:
file = open(r'C:\path\to\your\file.yaml')
Generate the path to the file relative to your python script:
from pathlib import Path
script_location = Path(__file__).absolute().parent
file_location = script_location / 'file.yaml'
file = file_location.open()
Change the current working directory before opening the file:
import os
os.chdir(r'C:\path\to\your\file')
file = open('file.yaml')
其他可能导致“找不到文件”错误的常见错误包括:
Accidentally using escape sequences in a file path:
path = 'C:\Users\newton\file.yaml'
# Incorrect! The '\n' in 'Users\newton' is a line break character!
为避免出现此错误,请记住使用raw string literals作为文件路径:
path = r'C:\Users\newton\file.yaml'
# Correct!
Forgetting that Windows doesn't display file extensions:
由于Windows不显示已知的文件扩展名,因此有时当您认为您的文件名为 file.yaml 时,它实际上名为 file.yaml.yaml . 仔细检查文件的扩展名 .