You*_*ark 4 path visual-studio-code
当我通过 Visual Studio Code 加载文件时,VScode 找不到目录。
我可以在没有终端问题的情况下运行代码,结果是:
young@young-desktop:/media/young/5e7be152-8ed5-483d-a8e8-b3fecfa221dc/text/mycodehtml/pracdl/golbin/TensorFlow-Tutorials/10_RNN/ChatBot$ python text_load_text.py
['fij\n', 'feijfaef\n', 'ef\n', 'awef\n', 'awe\n', 'g\n', 'aweg\n', 'ae\n', 'wg\n', 'awe\n', 'h\n', 'aw\n', 'h\n', 'aw\n', 'ef\n', 'aweg\n', 'wea\n', 'gaw\n', 'eg\n', '\n']
Run Code Online (Sandbox Code Playgroud)
但是使用 VScode:
young@young-desktop:/media/young/5e7be152-8ed5-483d-a8e8-b3fecfa221dc/text/mycodehtml/pracdl/golbin/TensorFlow-Tutorials$ cd /media/young/5e7be152-8ed5-483d-a8e8-b3fecfa221dc/text/mycodehtml/pracdl/golbin/TensorFlow-Tutorials ; env "PYTHONIOENCODING=UTF-8" "PYTHONUNBUFFERED=1" /home/young/anaconda3/bin/python /home/young/.vscode/extensions/ms-python.python-2018.6.0/pythonFiles/PythonTools/visualstudio_py_launcher.py /media/young/5e7be152-8ed5-483d-a8e8-b3fecfa221dc/text/mycodehtml/pracdl/golbin/TensorFlow-Tutorials 39707 34806ad9-833a-4524-8cd6-18ca4aa74f14 RedirectOutput,RedirectOutput /media/young/5e7be152-8ed5-483d-a8e8-b3fecfa221dc/text/mycodehtml/pracdl/golbin/TensorFlow-Tutorials/10_RNN/ChatBot/text_load_text.py
Traceback (most recent call last):
File "/media/young/5e7be152-8ed5-483d-a8e8-b3fecfa221dc/text/mycodehtml/pracdl/golbin/TensorFlow-Tutorials/10_RNN/ChatBot/text_load_text.py", line 8, in <module>
with open('test.txt', 'r') as f:
FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'
Run Code Online (Sandbox Code Playgroud)
什么原因导致这个问题?
test.txt 文件原本打算位于 ./data/test.txt
所以我测试了
with open('./data/test.txt', 'r') as f:
Run Code Online (Sandbox Code Playgroud)
但是 VScode 失败了
所以我试图通过尝试将 test.txt 文件移动到工作目录:
with open('test.txt', 'r') as f:
Run Code Online (Sandbox Code Playgroud)
和
with open('./test.txt', 'r') as f:
Run Code Online (Sandbox Code Playgroud)
但是所有的 VScode 都失败了。
首先,获取当前运行的模块的目录os.path.dirname(__file__)。然后,您可以将所需文件的相对路径加入此目录路径。
from os.path import dirname, join
current_dir = dirname(__file__)
file_path = join(current_dir, "./test.txt")
with open(file_path, 'r') as f:
Run Code Online (Sandbox Code Playgroud)
当我打开这个项目时,我将其作为“TensorFlow-Tutorials”文件夹打开。
所以我的工作目录是:
young@young-desktop:/media/young/5e7be152-8ed5-483d-a8e8-b3fecfa221dc/text/mycodehtml/pracdl/golbin/TensorFlow-Tutorials
Run Code Online (Sandbox Code Playgroud)
所以 ”。” 表示TensorFlow-Tutorials路径
因此,以下路径找不到文件
with open('./test.txt', 'r') as f:
Run Code Online (Sandbox Code Playgroud)
解决方案是添加额外的部分来准确指示我的真实目标目录:
with open("./10_RNN/ChatBot/test.txt", 'r') as f:
x = f.readlines()
print(x)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18646 次 |
| 最近记录: |