Ошибка значения: недопустимый путь к файлу или тип объекта буфера:

#file #path #buffer #valueerror

#файл #путь #буфер #ошибка значения

Вопрос:

я новичок в python и пытаюсь полуавтоматизировать импорт в YNAB.

Это работает, если я использую «askopenfilename» и делаю каждый csv отдельным, но я не смог заставить его работать с askopenfilenames и внутри элемента for в цикле.

Затем я получаю следующее сообщение об ошибке: ошибка значения: недопустимый путь к файлу или тип объекта буфера:

Вложенный код python:

 import pandas as pd
import numpy as np
from tkinter import filedialog
from tkinter import *
root = Tk()
root.filenames = filedialog.askopenfilenames(initialdir="C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/", title="Select file",
                                           filetypes=(("csv files", "*.csv"), ("all files", "*.*")))
print(root.filenames)
for item in root.filenames:
    print(item)
from pandas.core.tools.numeric import to_numeric
df = pd.read_csv(root.filenames, sep=';', usecols=(0, 1, 2, 3, 4),
                 encoding='utf-8', decimal=',')
df.columns = ['Date', 'Payee', 'Verwendungszweck', 'Buchungstext', 'Betrag']
df['Memo'] = df[['Buchungstext', 'Verwendungszweck']].apply(lambda x: ' -- '.join(x), axis=1)
Betrag = df.Betrag.astype(int)
df['Inflow'] = np.where(df.Betrag > 0, df.Betrag, "")
df['Outflow'] = np.where(df.Betrag < 0, df.Betrag * (-1), "")
path = (root.filenames.replace('Download_Finanzblick', 'Converted_YNAB')[:-4]   '-converted.csv')
print(path)
df.to_csv(path, sep=';', index=False,
          columns=['Date', 'Payee', 'Memo', 'Inflow', 'Outflow'], decimal='.')
next(item)
  

и сообщение об ошибке:

«C:Program Файлы (x86) Microsoft Visual StudioSharedAnaconda3_64python.exe » «C:/Users/dangeph/Repository/Finanzblick YNAB/Testfile.py » (‘C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_YY/Amazon — Kopie.csv’, ‘C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_YY/Amazon — Копия-преобразованный.csv’, ‘C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_YY/Amazon.csv ‘, ‘C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_YY/Amazon-converted.csv ‘, ‘C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_YY/DB.csv ‘, ‘C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_YY/DiBA.csv ‘, ‘C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_YY/DKB.csv ‘, ‘C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_YY/DKB-Visa.csv ‘, ‘C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_YY/Paypal.csv ‘, ‘C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_YY/VB.csv ‘) C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_YY/Amazon — Kopie.csv C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_YY/Amazon — Копия-преобразованный.csv C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_YY/Amazon.csv C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_YY/Amazon-converted.csv C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_YY/DB.csv C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_YY/DiBA.csv C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_YY/DKB.csv C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_YY/DKB-Visa.csv C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_YY/Paypal.csv C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_YY/VB.csv Обратная трассировка (последний вызов): Файл «C:/Users/dangeph/Repository/Finanzblick YNAB/Testfile.py «, строка 21, в файле encoding=’utf-8′, decimal=’,’) «C:Program Files (x86) Microsoft Visual StudioSharedAnaconda3_64libsite-packagespandas io parsers.py», строка 678, в parser_f возвращает _read(filepath_or_buffer, kwds) Файл «C:Program Файлы (x86) Microsoft Visual StudioSharedAnaconda3_64libsite-packagespandasioparsers.py «, строка 424, в файле _read filepath_or_buffer (кодирование, сжатие) «C:Program Файлы (x86) Microsoft Visual StudioSharedAnaconda3_64libsite-packagespandasiocommon.py «, строка 218, в get_filepath_or_buffer вызывает ошибку значения (msg.format(_type=type(filepath_or_buffer))) Ошибка значения: недопустимый путь к файлу или тип объекта буфера:

Процесс завершен с кодом выхода 1

Комментарии:

1. Я не знаю pandas, но эта строка выглядит так, как будто вы пытаетесь прочитать все файлы сразу: df = pd.read_csv(root.filenames, ... поскольку root.filenames содержит (потенциально) более одного имени файла.

2. из filedialog.askopenfilenames я получаю обратно список: (‘C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_XX/Amazon — Kopie.csv’, ‘C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_XX/Amazon.csv ‘, ‘C:/Users/dangeph/Desktop/Favoriten/Privat/YNAB/Download_Finanzblick/2019_XX/DB.csv ‘) теперь я должен просмотреть список и преобразовать каждый элемент (csv-файл) в другой csv-файл. я пытался с помощью i=0 while i < len(root.filenames): и for i in range(len(root.filenames)): , но не смог заставить это работать;-(((