我想遍歷數字.rtf文件和每個文件:讀取文件,執行一些操作,然後將新文件作爲具有相同名稱的純文本文件寫入子目錄作爲原始文件,但帶有.txt擴展名。我遇到的問題是文件命名。Python的文件命名問題
如果一個文件名爲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: coercing to Unicode: need string or buffer, NoneType found
如何解決我的代碼寫入新文件到一個子目錄,並改變從文件擴展名.rtf到.txt?謝謝您的幫助。
我們可以得到一個堆棧跟蹤? –
似乎不太可能標記的行會引發該錯誤。 – geoffspear
你介意標記一個答案被接受或沒有答案告訴你你需要什麼嗎? –