data类型文件python读取(python中的datatype)
python文件读写?
这两个问题都是由于最后一句使用了to_excel导致的,改成to_csv即可
另外,to_csv可以生成csv或者xls文件。
改成:data.to_csv(cleanedfile,sep="\t", encoding="utf-8")
python读取C#写的二进制文件,byte类型unpack
? ? ? ? 近期有一部分早期记录数据,C#写的二进制数据,在读取的过程中,short和unshort类型还是比较好转换的,但是碰到byte类型,对照struct的说明是x,设置读取格式时,这部分会空出来,读不出来。查看说明C#的byte类型在python是no value,用x读不出来。因为大概知道数据是整数类型的,于是用b(与B区别,是否有负值),也是1个字节,和C#中的byte一样长度,可以正确显示出来数据。如果是字符类,可以考虑c,s,p。注意变量所占字节数。(读出来数据最好测试验证一下)。
def readWrite(fname):
? ? with open(fname,'rb') as f:
? ? ? ? if fname[-3:] == 'RPT' :? ? #文件格式是RPT格式的二进制文件
? ? ? ? ? ? data = f.read()
? ? ? ? ? ?#fmt = 'H16x2H4x2H10x5H2h6H'? ?#数据格式中x会导致数据忽略掉,读不出来
? ? ? ? ? ?fmt = 'H16b2H4b2H10b5H2h6H'? ?#采用b替换后,数据格式显示正常
? ? ? ? ? ? data1= struct.unpack(fmt,data)
? ? ? ? elif fname[-3:] == 'DAY':? ???#文件格式时DAY格式的二进制文件
? ? ? ? ? ? data = f.read()
? ? ? ? ? ? fmt = '4i'
? ? ? ? ? ? data1= struct.unpack(fmt,data)
? ? ? ? else:
? ? ? ? ? ? data1 = '不是指定文件或文件错误'
? ? ? ? ? ? print('不是指定文件')
? ? return data1
python写入和读取h5、pkl、mat 文件
python中使用h5py对HDF5文件进行操作。
1、创建文件和数据集
import h5py
import numpy as np
imgData = np.zeros((2,4))
f = h5py.File('HDF5_FILE.h5','w') #创建一个h5文件,文件指针是f
f['data'] = imgData #将数据写入文件的主键data下面
f['labels'] = np.array([1,2,3,4,5]) #将数据写入文件的主键labels下面
f.close() #关闭文件
f = h5py.File('HDF5_FILE.h5','r') #打开h5文件
for key in f.keys():
print(f[key].name)
print(f[key].shape)
print(f[key].value)
输出结果:
/data
(2, 4)
[[ 0. 0. 0. 0.]
[ 0. 0. 0. 0.]]
/labels
(5,)
[1 2 3 4 5]
Process finished with exit code 0
写入读取pkl文件
1)字典类型:
import pickle
dict_data={'name':["张三","李四"]}
with open("dict_data.pkl","wb") as fo:
pickle.dump(dict_data,fo)
with open("dict_data","rb") as fo:
dict_data=pickle.load(fo,encoding='bytes')
print(dict_data.keys())
print(dict_data)
print(dict_data["name"])
结果如下:
dict_keys(['name'])
{'name': ['张三', '李四']}
['张三', '李四']
2)列表类型
import pickle
list_data=["张三","李四"]
with open ("list_data","wb") as fo:
pickle.dump(list_data,fo)
with open("list_data","rb") as fo:
pickle.load(fo,encoding='bytes')
print(list_data)
print(list_data.keys())
pirnt(list_data["name"])
mat文件
mat数据格式是Matlab的数据存储的标准格式。在Matlab中主要使用load()函数导入一个mat文件,使用save()函数保存一个mat文件。对于文件data.mat:
load(‘data.mat')
save('data_1.mat','A')
其中'A’表示要保存的内容。
在python读取mat文件:
1、读取文件:
import scipy.io as scio
file1='E://data.mat'
data=scio.loadmat(file1)
注意,读取出来的data是字典格式,可以通过函数type(data)查看。
print type(data)
结果显示
type 'dict'
找到mat文件中的矩阵:
print data['A']
结果显示
pythondata.txt文件中的个数据提出来赋值用什么代码
1. 使用open函数 这个方法是Python中最基本的读取文件数据的方法,读取任何的文件都可以使用这个函数,它会将会文件中的数据读取到一个列表中,然后在使用这个函数
2. 使用numpy包的loadtxt方法 这种方法通常会在对实验的数据进行处理的时候才使用到,numpy它本身是一个计算包,所以在使用loadtxt方法是时候,文件中的数据
python读取文件—txt文件常用读写操作
f = open("data.txt","r")? ?#设置文件对象
f.close() #关闭文件
为了方便,避免忘记close掉这个文件对象,可以用下面这种方式替代
with open('data.txt',"r") as f:? ? #设置文件对象
?str = f.read()()? ? #可以是随便对文件的操作
f = open("data.txt","r")? ?#设置文件对象
str = f.read()? ???#将txt文件的所有内容读入到字符串str中
f.close()? ?#将文件关闭
f = open("data.txt","r")? ?#设置文件对象
line = f.readline()
line = line[:-1]
while line:? ?? ?? ?? ? #直到读取完文件
? ? ?line = f.readline()??#读取一行文件,包括换行符
? ? ?line = line[:-1]? ???#去掉换行符,也可以不去
f.close() #关闭文件
data = []
for line in open("data.txt","r"): #设置文件对象并读取每一行文件
? ? ?data.append(line)? ?? ?? ?? ?? ?#将每一行文件加入到list中
?f = open("data.txt","r")? ?#设置文件对象
?data = f.readlines()??#直接将文件中按行读到list里,效果与方法2一样
?f.close()? ?? ?? ?? ? #关闭文件
可以使用pandas的.read_csv,读取文件的时候可以给每一列起名字,通过列名来调取相应列的数据。
import pandas as pd
data = pd.read_csv(" OSDO1012.txt",sep=',',header=None, names=['lat','lon','time','z']
使用data.lat就可以读取名为lat这一列的数据
?data = np.loadtxt("data.txt",skiprows = 1)? ?#将文件中数据加载到data数组里,并且跳过第一行
?with open('data.txt','w') as f:? ? #设置文件对象
? ? f.write(str)? ?? ?? ?? ?? ???#将字符串写入文件中
data = ['a','b','c']
单层列表写入文件
with open("data.txt","w") as f:
? ? f.writelines(data)
每一项用空格隔开,一个列表是一行写入文件
data =[ ['a','b','c'],['a','b','c'],['a','b','c']]
with open("data.txt","w") as f:? ? ? ? ? ? ? ? ? ? ? #设置文件对象
? ? ?for i in data:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #对于双层列表中的数据
? ? ? i = str(i).strip('[').strip(']').replace(',','').replace('\'','')+'\n'??#将其中每一个列表规范化成字符串
? ? ?f.write(i)? ? ? ? ? ? ? ? ? ? ? #写入文件
直接将每一项都写入文件
data =[ ['a','b','c'],['a','b','c'],['a','b','c']]
with open("data.txt","w") as f:? ? ? ? ? ? ? ? ? ? #设置文件对象
? ? ?for i in data:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #对于双层列表中的数据
? ? ? ? ? f.writelines(i)? ? ? ? ? ? ? ? ? ? ? ? ? ? #写入文件
np.savetxt("data.txt",data)? ???#将数组中数据写入到data.txt文件
np.save("data.txt",data)? ?? ???#将数组中数据写入到data.txt文件
请问python中如何读取一个csv或者dat文件,并储存为一个二维数组?
和普通文件一样读取。csv中文件数据项有逗号划分开。
infile = open("data.csv", 'r')
for line in infile:
data = line.rstrip().split(',')
print(data)