使用pandas报错如下
import pandas as pd
# path = 'E:\\8k飞参数据.csv'
path = 'E:\\14主减试车数据_2021-1-4-16-18.rec'
# csv_data = pd.read_csv(path, encoding='GBK', header=0)
csv_data = pd.read_excel(path)
k = 0
for i in csv_data.values:
print(i)
k += 1
if k > 10:
break
经过测试,发现文件可以直接用记事本打开,打开后格式如下
查看文件头,发现文件没有文件头,直接是可以用的数据
文件路径字符串前面加个r,文件格式改成表格
用的read_excel 文件就应该是excel格式的,rec是什么内容
文件格式就不是Excel的,你用pd.read_excel当然没有用了。我特意把Excel文件扩展名改成.rec读取都没问题。你不能确定就文件头判断下文件类型。
这个不是excel格式的文件,你改了后缀之后,excel程序能读出来,只不过说明excel的兼容性强大而已。
按tab键隔开的文本文件去读取。参考下面的代码:
import pandas as pd
# path = 'E:\\8k飞参数据.csv'
path = '~/sandbox/tmp/data.rec'
# csv_data = pd.read_csv(path, encoding='GBK', header=0)
csv_data = pd.read_csv(path, delimiter='\t')
k = 0
for i in csv_data.values:
print(i)
k += 1
if k > 10:
break
可以提供一份 rec 格式的文件么,我下载了你的xls文件用wps打开然后另存为后是可以读取的的
14主减试车数据_2021-1-4-16-18.xls
,另存为14主减试车数据_2021-1-4-16-18_2.xls
14主减试车数据_2021-1-4-16-18_2.xls
import pandas as pd
import xlrd
file1 = '14主减试车数据_2021-1-4-16-18.xls'
file2 = '14主减试车数据_2021-1-4-16-18_2.xls'
df = pd.read_excel(file2)
print(df)
经过几天的折磨,也感谢各位码友的帮助,最终我还是自己用pandas读取出来了,过程是下面的,用读取文本的方式,按行读取出rec文件的内容,在用分割"'\t'"的方法来分割字符串后写入excel,最后用pandas打开,操作代码如下
读取文件,写入excel,保存后返回路径
def rec_exl(filename):
# 获取临时文件名并改为excel格式后缀
name = filename.split(':\\')[-1].split('.')[0] + '.xls'
try:
f = open(filename, 'r', encoding='GBK')
xls = xlwt.Workbook()
sheet = xls.add_sheet('sheet1', cell_overwrite_ok=True)
x = 0
line = f.readline()
# 按行循环,读取文本文件
while line:
tempdata=line.split('\t')
for i in range(len(tempdata)):
item = tempdata[i]
# 去除空格换行
item = item.strip()
item = item.replace("\n", "")
try:
# 转换为浮点数
item = float(item)
except Exception as e:
pass
sheet.write(x, i, item)
x += 1
line = f.readline()
f.close()
# 拼接零时文件路径
path = os.getcwd() + '\\' + name
# 保存xls文件
xls.save(path)
# 返回路径
return path
except Exception as e:
return None
pandas获取路径,读取文件,使用后删除
#异步读取文件操作
@shared_task
def readrec(path):
exlpath = rec_exl(path)
exlobj=pd.read_excel(exlpath)
print(exlobj)
time.sleep(5)
os.remove(exlpath)
最后,再次感谢各位的帮助