Python 3.x |FileNotFoundError: [Errno 2] Нет такого файла или каталога |запись .csv из .xlxs - PullRequest
0 голосов
/ 01 ноября 2019

Я работал над функцией преобразования файлов для формата xlxs -> csv. Мне удалось заставить функцию работать, когда я указал точный файл, но у меня возникают проблемы, когда я пытаюсь повторить процесс по папке dir. Ниже приведен код:

def ExceltoCSV(excel_file, csv_file_base_path):
    workbook = xlrd.open_workbook(excel_file)

    ## get the worksheet names
    for sheet_name in workbook.sheet_names():
        print('processing - ' + sheet_name)

        ## extract the data from each worksheet
        worksheet = workbook.sheet_by_name(sheet_name)

        ## create a new csv file, with the name being the original Excel worksheet name; tidied up a bit replacing spaces and dashes
        csv_file_full_path = csv_file_base_path + sheet_name.lower().replace(" - ", "_").replace(" ","_") + '.csv'
        csvfile = open(csv_file_full_path, 'w')

        ## write into the new csv file, one row at a time
        writetocsv = csv.writer(csvfile, quoting = csv.QUOTE_ALL)

        for rownum in range(worksheet.nrows):
            writetocsv.writerow(
                list(x.encode('utf-8') if type(x) == type(u'') else x for x in worksheet.row_values(rownum)
            )
        )

        csvfile.close()
        print(sheet_name + ' has been saved at - ' + csv_file_full_path)

## Paths as strings
p = r'//Network/TestingFolder/'
nf_p = r'//Network/TestingFolder/CSV_Only/'

## directory reference
directory = r'//Network/TestingFolder/' # for os.listdir() function below
file_list = []

## for iterating over directory and spitting out the paths for each file { to be used in conjunction 
with ExceltoCSV() }
for filename in os.listdir(directory):
    if filename.endswith(".xlsx"):  # or filename.endswith(".csv")
        file_path = os.path.join(directory, filename)
        file_list.append(file_path)
    else:
        continue

for paths in file_list:
    print(paths)
    ExceltoCSV(paths, nf_p)

Моя ошибка происходит со строкой >> csvfile = open (csv_file_full_path, 'w') Ошибка: FileNotFoundError: [Errno 2] Нет такого файла или каталога

...