Depurando em código Python apresentando erro: “FileNotFoundError: [Errno 2] No such file or directory:”

O código a seguir destina-se a ler um arquivo CSV, realizar alguns cálculos nos dados e gravar os resultados em um novo arquivo CSV. No entanto, está dando um erro "FileNotFoundError: [Errno 2] No such file or directory:". Não consigo identificar e corrigir o erro.

import csv

def process_data(input_file, output_file):
    with open(input_file, 'r') as in_file, open(output_file, 'w') as out_file:
        reader = csv.reader(in_file)
        writer = csv.writer(out_file)
        for row in reader:
            result = calculate(row)
            writer.writerow(result)

def calculate(row):
    # Perform calculations on the data in 'row'
    # ...
    return result

process_data("data.csv", "results.csv")

Tens o arquivo CSV, na raiz onde está executando este script, neste caso o data.csv?

2 curtidas

Se seu csv estiver no mesmo diretório do seu arquivo python e voce apenas executar o arquivo pyhton, ele vai procurar o arquivo csv na raiz do seu sistema, não no mesmo diretório do script python, por isso vc precisa definir todo o caminho do arquivo csv, não pode ser um caminho relativo

Quando vc executa o script pelo ambiente virtual, ai sim vc pode usar o caminho relativo.

tente usar a pathlib para resolver esse problema, algo como isso:

from pathlib import Path
parent_path = Path(__file__).parent
file_path_in = Path(parent_path , 'data.csv') ## file_path_in = Path(parent_path , 'outra_pasta_dentro_desse_diretório', 'data.csv')
    with open(file_path_in) as in_file:
	...

parent_path é o caminho completo do seu script python
em file_path_in voce pode definir o caminho que quiser dentro do diretório do arquivo do script

para não ter esse problema eu sempre uso o caminho absoluto dos arquivos que quero acessar seja um txt, csv ou arquivo de imagem.

2 curtidas

sim mas obrigado ja entendi