我現在正在使用RapidMiner,並試圖將我在xlsx文件中的RapidMiner結果複製到txt文件中,以便使用python進行一些進一步處理。我在A列(A1-A1500)中顯示純文本,C列(C1-C1500)中顯示相應的文件名。 現在我的問題: 是否有任何可能(我正在考慮xlrd模塊)讀取A列中每個單元格的內容並將其打印到新創建的txt文件中,並在相應的列C中給出文件名?讀取Excel單元格並將內容複製到txt文件
正如我有點此刻失去之前,我從來沒有與xlrd模塊工作...
我現在正在使用RapidMiner,並試圖將我在xlsx文件中的RapidMiner結果複製到txt文件中,以便使用python進行一些進一步處理。我在A列(A1-A1500)中顯示純文本,C列(C1-C1500)中顯示相應的文件名。 現在我的問題: 是否有任何可能(我正在考慮xlrd模塊)讀取A列中每個單元格的內容並將其打印到新創建的txt文件中,並在相應的列C中給出文件名?讀取Excel單元格並將內容複製到txt文件
正如我有點此刻失去之前,我從來沒有與xlrd模塊工作...
對於與.xlsx處理有關的每項任務,我都可以推薦openpyxl。
對於你的要求:
from openpyxl import *
import os
p = 'path/to/the/folder/with/your/.xlsx'
files = [_ for _ in os.listdir(p) if _.endswith('.xlsx')]
for f in files:
wb = load_workbook(os.path.join(p, f))
ws = wb['name_of_sheet']
for row in ws.rows:
with open(row[2].value+'.txt', 'w') as outfile:
outfile.write(row[0].value)
美好的一天!所以,我不確定我是否正確理解你的問題,但是你是否嘗試過使用讀取Excel操作符與循環示例操作符的組合?你的循環子程序可以使用Write CSV操作符或類似的。
好主意。沒有想到在RM中做這個任務。但是可以將輸出文件分配與輸入文件相同的名稱? –
由於@corinna最終的代碼是:
from openpyxl import *
import os
p = r'F:\Results'
files = [_ for _ in os.listdir(p) if _ .endswith('.xlsx')]
os.chdir(r"F:\Results")
for f in files:
file_location = load_workbook(os.path.join(p, f))
sheet = file_location['Normal']
for row in sheet.rows:
with open(row[2].value + '.txt', "w") as outfile:
outfile.write(row[0].value)
感謝您的幫助。這工作非常完美!也許還有一件事。假設我有一個包含多個excel文件的目錄,都具有相同的結構,是否有機會(使用os.chdir和for循環)迭代所有excel文件並將我的輸出文件重定向到一個特定的目錄,該目錄將包含所有我txt文件到底? –
感謝您編輯您的帖子,現在迭代完美。我只附加了os.chdir(r「F:\ Results」),以便將我的輸出與我的Excel文件放在同一個目錄中。 –