Я пытаюсь перебрать ряд файлов .rtf и для каждого файла: прочитать файл, выполнить некоторые операции, а затем записать новые файлы в подкаталог в виде простых текстовых файлов с тем же именем, что и исходный файл, но с расширениями .txt. У меня проблема с именами файлов.
Если файл называется foo.rtf, я хочу, чтобы новый файл в подкаталоге был foo.txt. вот мой код:
import glob
import os
import numpy as np
dir_path = '/Users/me/Desktop/test/'
file_suffix = '*.rtf'
output_dir = os.mkdir('sub_dir')
for item in glob.iglob(dir_path + file_suffix):
with open(item, "r") as infile:
reader = infile.readlines()
matrix = []
for row in reader:
row = str(row)
row = row.split()
row = [int(value) for value in row]
matrix.append(row)
np_matrix = np.array(matrix)
inv_matrix = np.transpose(np_matrix)
new_file_name = item.replace('*.rtf', '*.txt') # i think this line is the problem?
os.chdir(output_dir)
with open(new_file_name, mode="w") as outfile:
outfile.write(inv_matrix)
Когда я запускаю этот код, я получаю сообщение об ошибке типа:
TypeError: приведение к Unicode: нужна строка или буфер, NoneType найден
Как я могу исправить свой код, чтобы записывать новые файлы в подкаталог и изменять расширения файлов с .rtf на .txt? Спасибо за помощь.