环境数据
Windows 11系统
Python 3.11.4
VS代码
程序信息
以下是关于我的程序的一些基本信息:
此程序的路径:d:\Learning\Programming\python_work\File_Reader\file_reader.py
file_path = 'File\\pi_digits.txt'
with open(file_path) as file_object:
contents = file_object.read()
print(contents)
#This program try to open the file:d:\Learning\Programming\python_work\File_Reader\File\pi_digits.txt
#and print the numbers stored in this file
字符串
所以file_reader.py和文件夹File都在文件夹File_Reader中。
pi_digits.txt在文件夹File中。
我想使用相对路径来告诉我的程序pi_digits.txt在哪里。
我运行了两次代码,我认为至少我的代码是正确的。
第一次尝试
我在终端中用VS Code运行它
PS D:\Learning\Programming\python_work\File_Reader> python file_reader.py
型
而结果正是我想要的
3.1415926535
8979323846
2643383279
型
第二次尝试
使用运行代码按钮(Crtl+Alt+N)运行
但似乎找不到pi_digits.txt的位置。
[Running] python -u "d:\Learning\Programming\python_work\File_Reader\file_reader.py"
Traceback (most recent call last):
File "d:\Learning\Programming\python_work\File_Reader\file_reader.py", line 2, in <module>
with open(file_path) as file_object:
^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'File\\pi_digits.txt'
[Done] exited with code=1 in 0.097 seconds
型
最后一次尝试
我用绝对路径重写了程序
file_path = 'd:\\Learning\\Programming\\python_work\\File_Reader\\File\\pi_digits.txt'
with open(file_path) as file_object:
contents = file_object.read()
print(contents)
型
以上两种方法都能很好地工作
我不知道为什么当我使用相对路径,该程序不工作,在我的 * 第二次尝试 *
2条答案
按热度按时间iibxawm41#
当您指定相对路径时,运行
python file_reader.py
时您所处的目录是重要的。1.当您使用Visual Studio时,它将自动在项目的基目录中加载shell。该项目目录还包含文件
py_digits.txt
,因此一切正常。1.当您使用任何其他终端时,它将默认加载用户主目录中的shell。并且该主目录不包含文件
py_digits.txt
,因此无法找到该文件。当您指定绝对路径时,运行
python file_reader.py
时,您在哪个目录中并不重要。文件总能找到。mnemlml82#
正如jraufeisen所提到的,这与
vscode
和terminal
的不同路径有关。因此,我倾向于这样做,以获得通用代码,但明确的路径。
字符串