Ошибка панд - добавление нескольких файлов в один - PullRequest
0 голосов
/ 30 октября 2018

У меня есть набор файлов, которые не имеют никакого расширения. В настоящее время они хранятся в папке, на которую ссылается эта переменная "allFiles".

allFiles = glob.glob(base2 + "/*")

Я пытаюсь добавить расширение для каждого из файлов в allFiles. Добавьте .csv к имени файла. Я делаю это, используя следующий код:

for file in allFiles:
    os.rename(os.path.join(base2, file), os.path.join(base2, file+'.csv'))

Далее я пытаюсь добавить каждый из этих CSV-файлов в один, как показано ниже:

list_ = []
    for file_ in allFiles:
        try:
            df = pd.read_csv(file_, index_col=None, header=None,delim_whitespace = True, error_bad_lines=False)
            list_.append(df)
        except pd.errors.EmptyDataError:
            continue

Когда я запускаю приведенный выше код, я получаю сообщение о том, что один из файлов не существует.

Error : FileNotFoundError: File b'/Users/base2/file1' does not exist

Но file1 теперь переименован в file1.csv

Может ли кто-нибудь посоветовать, где я ошибаюсь в вышесказанном. Благодаря

Обновление:

allFiles = glob.glob(base2 + "/*")
print(allFiles)
list_ = []
print(list_)
allFiles = [x + '.csv' for x in allFiles]
print(allFiles)
for file_ in allFiles:
    try:
        df = pd.read_csv(file_, index_col=None, header=None)
        list_.append(df)
    except pd.errors.EmptyDataError:
        continue

Error : FileNotFoundError: File b'/Users/base2/file1.csv' does not exist

1 Ответ

0 голосов
/ 30 октября 2018

Перед запуском цикла выполните:

РЕДАКТИРОВАТЬ для ясности:

for file in allFiles:
    os.rename(os.path.join(base2, file), os.path.join(base2, file+'.csv'))

###What you're adding###
allFiles = [x+'.csv' for x in allFiles]
########################

for file_ in allFiles:
    try:

По сути, проблема в том, что вы меняете имена файлов, но не изменяете строки в своем списке, чтобы они отражали новые имена файлов. Вы можете увидеть это, если распечатаете все файлы. Вышеизложенное внесет необходимые изменения для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...