Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python“;开放式;函数正在向我的路径添加斜杠_Python 3.x_Windows - Fatal编程技术网

Python 3.x Python“;开放式;函数正在向我的路径添加斜杠

Python 3.x Python“;开放式;函数正在向我的路径添加斜杠,python-3.x,windows,Python 3.x,Windows,我想在我的windows路径..\labels.csv中打开一个csv文件,但在“打开”功能中,它将我的路径修改为..\\labels.csv,因此无法找到我的文件,为什么 我有以下代码: print("..\\labels.csv") with open(r"..\labels.csv") as csv_file: #Some code 它给了我这个错误: File "src\win_labelling.py&

我想在我的windows路径..\labels.csv中打开一个csv文件,但在“打开”功能中,它将我的路径修改为..\\labels.csv,因此无法找到我的文件,为什么

我有以下代码:

    print("..\\labels.csv")
    with open(r"..\labels.csv") as csv_file:
        #Some code
它给了我这个错误:

File "src\win_labelling.py", line 144, in <module>
    with open(r"..\labels.csv") as csv_file:
FileNotFoundError: [Errno 2] No such file or directory: '..\\labels.csv'
文件“src\win\u labeling.py”,第144行,在
将打开的(r.。\labels.csv”)作为csv\u文件:
FileNotFoundError:[Errno 2]没有这样的文件或目录:'..\\labels.csv'

您的代码有三个问题,第一个是您没有定义当前目录或导入csv模块

第二个问题是,如果要打开本地文件(与可执行文件位于同一文件夹中),则不需要添加
。\
,这通常仅在另一文件夹中有文件时使用。因此,您的代码所发生的事情是:
打开
函数将您的路径转换为一个
str
,并且已经将
\
添加到开始处。插入
“.\labels.csv”
时,open将形成字符串
“\”+“\labels.csv”
成为
“.\\labels”
,并导致错误
FileNotFound
,因为没有具有该名称的目录(路径)

第三个问题是,您不清楚是要读取还是写入该文件。当你把“r”放在前面时,我相信它是可读的,所以语法是错误的。正确的代码是:

import os
import csv

# Your Absolute Path
os.path.dirname(os.path.abspath(__file__))

# If your labels.csv is in the same folder
with open("labels.csv", newline='') as csv_file:
    #Some code

我建议查看是否要对csv文件执行另一个操作,以及。

我的脚本如何在“test\src\”中运行,我正在尝试打开位于“test\”中的文件。在ubuntu中,我使用“./”放在更高的文件夹中,但我认为它在windows上不起作用。如果您使用windows,请尝试使用“…”而不是“../”,那么,我认为这应该可以解决您的问题。另一个解决方案是使用pathlib模块,他在使用windows时会很方便。路径不会被修改<代码>“.\\labels.csv”是一个字符串文字,它创建一个只有一个反斜杠的字符串。将反斜杠加倍是以字符串文字转义的方法。工作目录可能不是您所期望的。检查
导入操作系统;打印(os.getcwd())