Python对txt进行读写操作

2022-07-29 13:18:38 浏览数 (1)

全文件读写

读操作使用pandas.read_csv,写操作使用data.to_csv

代码语言:javascript复制
import numpy
import pandas as pd

#读
data = pd.read_csv(r"/home/snowstorm/mmdetection/data/groundtruth.txt", header=None) #读取TXT:逗号分隔
#data = pd.read_csv(r"/home/snowstorm/mmdetection/data/groundtruth.txt", header=None, sep=' ') #读取TXT:空格分隔
print(data)

#写
data.to_csv("/home/snowstorm/mmdetection/data/write.txt",sep=',',header=False,index=False)

指定行列读写

代码语言:javascript复制
import numpy

#读数据
def loadDatadet(infile,k):
    f = open(infile,'r')
    sourceInLine = f.readlines()
    dataset = []
    for line in sourceInLine:    #读数据
        temp1 = line.strip('n')
        temp2 = temp1.split('t')
        dataset.append(temp2)
        
    for i in range(0,len(dataset)):   #转为整数
        for j in range(k):
            dataset[i].append(int(dataset[i][j]))
        del(dataset[i][0:k])
        list = sum(dataset,[])        #变成一维数组
        posit_data = numpy.array(list).reshape(len(list)//4,4) #变为n*4的二维数组
    return posit_data


#写数据
def Writedata(negat_data):
    filename = 'C:\Users\DZF\Desktop\negative.txt'  #要写入的文件
    row = numpy.array(negat_data).shape[0]   #获取行数n
    with open(filename,'w') as f: # 若filename不存在会自动创建,写之前会清空文件
        for i in range(0,row):
            f.write(str(negat_data[i][0:12]))
            f.write("n")
        
    
infile = 'C:\Users\snow\Desktop\positive.txt'   #要读取的文件
k = 1        #列数
posit_data = loadDatadet(infile,k)
Writedata(posit_data)

print(posit_data)

0 人点赞