首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中打开以.xls扩展名保存的文本文件时出错

在python中打开以.xls扩展名保存的文本文件时出错
EN

Stack Overflow用户
提问于 2016-12-03 04:14:24
回答 2查看 968关注 0票数 0

我正在使用labview创建和保存来自实验的数据。Labview本身创建了一个文本文件,但会自动将其保存为.xls扩展名(Word1997-2003--这是一个从未更改过的旧设置,因为它从未损坏)。每当我打开其中一个数据文件时,excel都会显示:

您试图打开的文件'name.ext‘的格式与文件扩展名指定的格式不同。在打开该文件之前,请确认该文件未损坏且来源可信。是否立即打开该文件?

我正在生成大量数据,所以我想使用python对其进行排序,并对目录中的文件进行一些快速分析。

问题是python不喜欢它是以.xls扩展名保存的文本文件。它可以很好地在目录中循环以获取文件名,但每当我实际尝试打开文件或对其执行任何操作时,我都会在附加的图像中得到错误。如果我将扩展名改为.xls、.xlsx,或者什么也不做而让它尝试打开原始文件名,就会发生这种情况。

error message

我有成百上千个这样的.xls文件。我知道我可以通过,打开每一个在excel中,并另存为一个真正的excel文件手动,但这将花费数小时。有没有人能帮我解决一下python中的这个错误?

Dropbox Data File set

*更新。Matlab在尝试使用xlsread读取其中一个文件时说:

使用xlsread (第251行)文件C:\Users\zane\Documents\Research Projects\PneuFish Project\Data\11.28 2016 ATI Data\ATI_Data_2016Y_11M_28D_16h_36m_01s.xls时出错。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2016-12-03 04:35:34

您可以使用模块xlrd

代码语言:javascript
运行
复制
import xlrd
import csv

def csv_from_excel():

   wb = xlrd.open_workbook('your_workbook.xls')
   sh = wb.sheet_by_name('Sheet1')
   your_csv_file = open('your_csv_file.csv', 'wb')
   wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)

   for rownum in xrange(sh.nrows):
        wr.writerow(sh.row_values(rownum))

   your_csv_file.close()

摘自This Post

这将从.xls转换为.csv,这很容易用Python语言操作。

票数 0
EN

Stack Overflow用户

发布于 2016-12-03 20:36:47

您已经说过该文件是一个文本文件,所以不要告诉Python它是一个Excel文件。只需使用Python的open并将其作为文本读取,然后随心所欲地处理它。open并不关心文件的扩展名是什么。

我将猜测该格式实际上是制表符分隔的。从内存中读取扩展名为.xls的制表符分隔的文本文件是没有问题的,而csv文件总是会打开文本导入向导,所以如果要从一个不支持写入真正的Excel文件的程序中保存数据,这是一种常见的回避方法。

如果您希望将来使用LabVIEW代码编写真正的Write to Measurement File文件,xlsx可以选择以xlsx格式编写。我不确定哪个版本的LabVIEW最先引入了这一功能,但它已经存在了几年了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40940163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档