我正在使用labview创建和保存来自实验的数据。Labview本身创建了一个文本文件,但会自动将其保存为.xls扩展名(Word1997-2003--这是一个从未更改过的旧设置,因为它从未损坏)。每当我打开其中一个数据文件时,excel都会显示:
您试图打开的文件'name.ext‘的格式与文件扩展名指定的格式不同。在打开该文件之前,请确认该文件未损坏且来源可信。是否立即打开该文件?
我正在生成大量数据,所以我想使用python对其进行排序,并对目录中的文件进行一些快速分析。
问题是python不喜欢它是以.xls扩展名保存的文本文件。它可以很好地在目录中循环以获取文件名,但每当我实际尝试打开文件或对其执行任何操作时,我都会在附加的图像中得到错误。如果我将扩展名改为.xls、.xlsx,或者什么也不做而让它尝试打开原始文件名,就会发生这种情况。
我有成百上千个这样的.xls文件。我知道我可以通过,打开每一个在excel中,并另存为一个真正的excel文件手动,但这将花费数小时。有没有人能帮我解决一下python中的这个错误?
*更新。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时出错。
谢谢!
发布于 2016-12-03 04:35:34
您可以使用模块xlrd。
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()这将从.xls转换为.csv,这很容易用Python语言操作。
发布于 2016-12-03 20:36:47
您已经说过该文件是一个文本文件,所以不要告诉Python它是一个Excel文件。只需使用Python的open并将其作为文本读取,然后随心所欲地处理它。open并不关心文件的扩展名是什么。
我将猜测该格式实际上是制表符分隔的。从内存中读取扩展名为.xls的制表符分隔的文本文件是没有问题的,而csv文件总是会打开文本导入向导,所以如果要从一个不支持写入真正的Excel文件的程序中保存数据,这是一种常见的回避方法。
如果您希望将来使用LabVIEW代码编写真正的Write to Measurement File文件,xlsx可以选择以xlsx格式编写。我不确定哪个版本的LabVIEW最先引入了这一功能,但它已经存在了几年了。
https://stackoverflow.com/questions/40940163
复制相似问题