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")
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.