Python error "FileNotFoundError: [Errno 2] File b Usuarios.csv' does not exist: b Usuarios.csv'"

Python error "FileNotFoundError: [Errno 2] File b Usuarios.csv' does not exist: b Usuarios.csv'"

我正在使用 pandas 读取 csv 文件,当我在 Spyder 上 运行 时,代码 运行 非常好,但是,当我尝试 运行在 anaconda 提示符下打开它,甚至双击 .py 文件也不会 运行。在 anaconda 提示符下,我收到 "FileNotFoundError: [Errno 2] File b Usuarios.csv' does not exist: b Usuários.csv'" 错误,即使该文件确实存在并且它与 .py 文件位于同一目录中。我正在使用此代码:

import pandas 
import csv

csv_reader = pandas.read_csv("D:\clovi\Projetos\Python\Usuarios.csv",encoding='utf-8')

j=0
y = csv_reader.iloc[-1].values[0]

while True:
    i=0
    x = csv_reader.iloc[j].values
    usuario = x[i]
    i+=1
    pase = x[i]
    j+=1
    if usuario == y:
        edistribucion(usuario,pase)
        break
    else:
        edistribucion(usuario,pase)

注意:为了读取文件,我也尝试过

import pandas as pd
import csv

csv_reader = pd.read_csv("Usuarios.csv")

.
.
.

正如我所说,当我在 Spyder 上 运行 时它 运行 很好,但在其他任何地方都不 运行。我在代码上做错了什么?

在 Spyder CLI 中输入:

import os
print(os.getcwd())

转到 Anaconda Prompt 中的结果目录:

cd path\from\Spyder\print

现在启动您的脚本。可以复制到目录或路径调用。

可能是Anaconda提示没有访问CSV文件所在目录的权限。在这种情况下,您可以修改脚本以接受命令行参数,如果有 none,则默认为您已有的路径,如下所示:

import sys
import os
import pandas 
import csv

# If there is a command-line argument, and the argument is a valid file, this matches
if len(sys.argv) > 1 and os.path.exists(sys.argv[1]):
    csv_path = sys.argv[1]
else:
    csv_path = r'D:\clovi\Projetos\Python\Usuarios.csv'

csv_reader = pandas.read_csv(csv_path,encoding='utf-8')

j=0
y = csv_reader.iloc[-1].values[0]

while True:
    i=0
    x = csv_reader.iloc[j].values
    usuario = x[i]
    i+=1
    pase = x[i]
    j+=1
    if usuario == y:
        edistribucion(usuario,pase)
        break
    else:
        edistribucion(usuario,pase)

您可以在不破坏代码的情况下动态更改 CSV,因此在命令行中:

# This tries to process the hard-coded CSV
python clovis_magno.py

# While this processes top_secret_data.csv in your Desktop
python clovis_magno.py "C:\Users\Clovis Magno\Desktop\top_secret_data.csv"