读取Excel单元格并将内容复制到txt文件

时间:2016-09-15 13:22:26

标签: python-3.x xlrd rapidminer

我目前正在使用RapidMiner,我正在尝试将我的RapidMiner结果复制到xxtx文件中,以便使用python进行进一步处理。我在A栏(A1-A1500)中有明文,在C栏(C1-C1500)中也有相应的文件名。 现在我的问题: 是否有可能(我正在考虑xlrd模块)读取A列中每个单元格的内容并将其打印到新创建的txt文件中,文件名在相应的列C中给出?

因为我之前从未使用过xlrd模块,所以我现在有点迷失了......

3 个答案:

答案 0 :(得分:3)

对于.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)

答案 1 :(得分:0)

美好的一天!所以,我不确定我是否正确理解了您的问题,但您是否尝试过将Read Excel运算符与Loop Examples运算符结合使用?然后,您的循环子流程可以使用Write CSV运算符或类似操作。

答案 2 :(得分:0)

感谢@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)