data类型文件python读取(python中的datatype)

http://www.itjxue.com  2023-04-07 19:42  来源:未知  点击次数: 

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)

(责任编辑:IT教学网)

更多

推荐Mail服务器文章