【发布时间】:2018-03-05 14:26:22
【问题描述】:
我编写了一些代码并尝试对其进行重构以减少几个步骤,但我似乎无法找到答案。我正在读取一个 excel 文件并进行一堆列重命名和删除我不需要的列。我的最终目标是将 Excel 文件编写为文本制表符分隔的文件,并以一种非常笨拙的方式完成所有这些工作。我有一个函数 convertToText() 可以读取 excel 文件并将其转换为 txt 文件。但是,文件中的每个整数都会在末尾附加一个 .0。
例如
Excel value 1234321
Txt File = 1234321.0
我只是使用 pandas、openpyxl 和 xlrd 进行简单的读写。
def convertToText():
with open(os.path.join(outFile, 'target2.txt'), 'wb') as myTxtfile:
wr = csv.writer(myTxtfile, delimiter="\t")
myfile = xlrd.open_workbook(outFile + fileName)
mysheet = myfile.sheet_by_index(0)
for rownum in xrange(mysheet.nrows):
wr.writerow(mysheet.row_values(rownum))
我不得不编写第二个函数,只是为了在 .0 上进行查找和替换,并试图将这一步从流程中删除。如果有人对如何在上述函数中执行此操作有任何想法,将不胜感激!
【问题讨论】:
-
你能打印
mysheet.row_values(rownum)给我们看吗? -
您确定在 Excel 中查看文件时,它没有隐藏原始小数位吗?
-
您只需要确保数字是整数:在 Excel 中它们都是浮点数。
-
@Jean-FrançoisFabre,这不是您标记的那个的副本。另一个问题是关于简单地将数字读取为整数,而这个问题不仅是关于读取,而且是关于保存在 CSV 文件中。与其他问题给出的答案相比,可能会有不同的答案执行任务。所以我建议这个问题被恢复并重新打开。
-
好的,但是如果您将读取为整数,那么写入不再是问题。该链接解释了如何在阅读时转换为整数。我正在等到 OP 编辑他的帖子以解释为什么它不是重复的。我不会在没有更多参数的情况下重新打开(或者我将无法再次关闭)。其他一些蟒蛇黄金可以做到这一点。