Python将xlsx读取为Csv

2024-06-16 10:05:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用xlrd将xlsx文件作为csv读取。为此,我使用以下代码:

workbook = xlrd.open_workbook("170519_taxonomy_in_qiime.xlsx")
sheet = workbook.sheet_by_index(0)
source_data = [sheet.row_values(rowx) for rowx in range(sheet.nrows)]

这给了我这个例子的结果

[[225145.0, 'k__Bacteria', ' p__ZB3', ' c__Rs-J96', ' o__', ' f__', ' g__', ' s__'], [2916972.0, 'k__Bacteria', ' p__ZB3', ' c__Rs-J96', 'o__', ' f__', ' g__', ' s__']]

但我需要我的结果如下所示:

[['225145.0, k__Bacteria,  p__ZB3,  c__Rs-J96,  o__,  f__,  g__,  s__'], ['2916972.0, k__Bacteria,  p__ZB3,  c__Rs-J96,  o__,  f__,  g__,  s__']]

你知道怎么做吗


Tags: 文件csv代码inopenxlsxsheetworkbook
2条回答
x = [[225145.0, 'k__Bacteria', ' p__ZB3', ' c__Rs-J96', ' o__', ' f__', ' g__', ' s__'], [2916972.0, 'k__Bacteria', ' p__ZB3', ' c__Rs-J96', 'o__', ' f__', ' g__', ' s__']]

y = []
for c in x:
    b = ""
    for a in c:
        b =b + "".join(str(a))
    y.append(b)
y

输出

['225145.0k__Bacteria p__ZB3 c__Rs-J96 o__ f__ g__ s__',
 '2916972.0k__Bacteria p__ZB3 c__Rs-J96o__ f__ g__ s__']

源_数据中的每个项都是一个值列表。您正试图生成一个包含列表中每个值的字符串

您可以为此使用str.join函数。但是,请注意,列表中的第一个元素是浮点值而不是字符串,因此在使用join函数之前,首先需要将其转换为字符串

例如:

source_data = [' '.join(map(str,sheet.row_values(rowx))) for rowx in range(sheet.nrows)]

相关问题 更多 >