Не могу заставить мой код работать в цикле glob? - PullRequest
0 голосов
/ 25 марта 2019

Мне нужно обновить 1 конкретное значение ячейки на том же листе из примерно 600 файлов .xls. Используя библиотеку xlwings, я смог заменить значения ячейки на листе и сохранить 1 рабочую книгу. Теперь мне нужно использовать код, чтобы получить все 600 моих файлов .xls и запустить ту же функцию замены, чтобы обновить значение ячейки.

используя xlwings, я смог очень просто заменить строковые значения:

import xlwings as xw

wb = xw.Book('Files/firstexcel.xls')
sht1 = wb.sheets['Voucher']
 sht1.range('N5').value = sht1.range('N5').value.replace('phone numbers: phonenumber1 phonenumber2, phonenumber3, phonoenumber4', 'phone number: newnumberX')
 sht1.range('N5').value

и это напечатано:

phone number: newnumberX

Используя glob, я могу извлекать файлы в каталог, заканчивающийся на .xls, и я надеюсь, что смогу записывать в каждый из этих файлов, используя forloop и xlwings.

import os
import glob
import xlwings as xw

os.chdir(r'Files/firstexcel.xls')

for FileList in glob.glob('*.xls'):
    for file in FileList:
        wb = xw.Book(file)
        sht1 = wb.sheets['Voucher']
        sht1.range('N5').value = sht1.range('N5').value.replace('phone numbers: phonenumber1 phonenumber2, phonenumber3, phonoenumber4', 'phone number: newnumberX')
sht1.range('N5').value
        wb.save()

и я получаю эту ошибку:

File "<ipython-input-36-ff41afc16cc1>", line 13
    wb.save()
    ^
IndentationError: unexpected indent

Я ожидал, что цикл извлечет эти файлы в список (FileList) и из Filelist, вытянет каждый файл и откроет их рабочую книгу и листы и внесет изменения, используя функцию .replace. Но я получил ошибку отступа. Что тривиально, может быть, кто-то может помочь мне очистить мой код, чтобы я мог обновить свои файлы? БЛАГОДАРЮ ВАС! :-)

...