Aru*_*run 4 python file python-3.4 visual-studio-code
我正在编写一个脚本来读取一个 csv 文件。csv 文件和脚本位于同一目录中。但是当我尝试打开文件时,它给了我FileNotFoundError: [Errno 2] No such file or directory: 'zipcodes.csv'. 我用来读取文件的代码是
with open('zipcodes.csv', 'r') as zipcode_file:
reader = csv.DictReader(zipcode_file)
Run Code Online (Sandbox Code Playgroud)
如果我提供文件的完整路径,它将起作用。为什么open()需要文件的完整路径?
从文档:
打开(文件,模式='r',缓冲=-1,编码=无,错误=无,换行=无,closefd=真,开瓶器=无)
file 是一个类似路径的对象,给出要打开的文件的路径名(绝对或相对于当前工作目录)或要包装的文件的整数文件描述符。
因此,如果要打开的文件不在正在运行的脚本的当前文件夹中,则可以使用绝对路径,或者使用以下方法获取工作目录或/和绝对路径:
import os
# Look to the path of your current working directory
working_directory = os.getcwd()
# Or: file_path = os.path.join(working_directory, 'my_file.py')
file_path = working_directory + 'my_file.py'
Run Code Online (Sandbox Code Playgroud)
或者,您可以在运行脚本时检索绝对路径,使用:
import os
# Look for your absolute directory path
absolute_path = os.path.dirname(os.path.abspath(__file__))
# Or: file_path = os.path.join(absolute_path, 'folder', 'my_file.py')
file_path = absolute_path + '/folder/my_file.py'
Run Code Online (Sandbox Code Playgroud)
如果您想成为操作系统不可知论者,那么您可以使用:
file_path = os.path.join(absolute_path, folder, my_file.py)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40244 次 |
| 最近记录: |