觉得有用的话,请点击右下角
推荐给更多小伙伴neoken_xuAsuradaEvacloud
参考文献
python 操作 txt 文件中数据教程[1]-使用 python 读写 txt 文件[1]
原始 txt 文件程序实现后结果python 操作 txt 文件中数据教程[2]-python 提取 txt 文件[2]
程序实现
importos SUM_LOG_FILE=[]#sum_csv文件名 INDIVIDUAL_LOG_FILE=[]#individual_csv文件名 File_Name=[]#txt_文件名 DNA_Group=7#表示每7条DNA组成一个组 Sum_log_file_header=["No","Continuity","Hairpin","H-measure","Similarity","GC"] Individual_log_file_header=["No","DNAstructure","Continuity","Hairpin","H-measure","Similarity","TM","GC"] defRead_Files(filename): DNA_log=[]#精英种群个体日志mod9=1-8 Sum_log=[]#精英种群总体日志mod9=0 sum_evaindex=[[]foriinrange(6)] Individual_evaindex=[[]foriinrange(8)] withopen(filename,'r')asf: i=1 forlineinf.readlines(): ifi%9==0: Sum_log.append(line) else: DNA_log.append(line) i=i+1 f.close() Sum_no=1 dna_log_no=0 forSuminSum_log: sum_eva_index=Sum.split("\n")[0].split("")[1:] sum_evaindex[0].append(int(Sum_no)) sum_evaindex[1].append(float(sum_eva_index[0]))#Con sum_evaindex[2].append(float(sum_eva_index[1]))#HP sum_evaindex[3].append(float(sum_eva_index[2]))#Hm sum_evaindex[4].append(float(sum_eva_index[3]))#Si sum_evaindex[5].append(float(sum_eva_index[4]))#GC Sum_no=Sum_no+1 fordna_loginDNA_log: #获取序号值 if(dna_log_no+1)%8==1: foriinrange(DNA_Group): Individual_evaindex[0].append(int(dna_log.split("\n")[0])) else: #获取各项指标 Individual_evaindex[1].append(dna_log.split("\n")[0].split("")[0])#所有DNA序列全部记载,使用原有的str字符串类型记载 Individual_evaindex[2].append(float(dna_log.split("\n")[0].split("")[1]))#DNA序列的连续值Con,注意要转换为浮点数类型 Individual_evaindex[3].append(float(dna_log.split("\n")[0].split("")[2]))#Hp茎区匹配 Individual_evaindex[4].append(float(dna_log.split("\n")[0].split("")[3]))#H-measure Individual_evaindex[5].append(float(dna_log.split("\n")[0].split("")[4]))#Similarity Individual_evaindex[6].append(float(dna_log.split("\n")[0].split("")[5]))#TM Individual_evaindex[7].append(float(dna_log.split("\n")[0].split("")[6]))#GC dna_log_no=dna_log_no+1 returnsum_evaindex,Individual_evaindex #将数据写入csv日志文件中 defWrite_SumFiles(filename,sum_evaindex): withopen(filename,"w",newline='')asf: writer=csv.writer(f) writer.writerow(Sum_log_file_header)#注意,此处使用writerow而不是使用writerows foriinrange(sum_evaindex[0][-1]): writer.writerow( [sum_evaindex[0][i],sum_evaindex[1][i],sum_evaindex[2][i],sum_evaindex[3][i],sum_evaindex[4][i], sum_evaindex[5][i]]) f.close() defWrite_IndividualFiles(filename,sum_evaindex,Individual_evaindex): withopen(filename,"w",newline='')asf: writer=csv.writer(f) writer.writerow(Individual_log_file_header)#注意,此处使用writerow而不是使用writerows foriinrange(sum_evaindex[0][-1]*DNA_Group): writer.writerow( [Individual_evaindex[0][i],Individual_evaindex[1][i],Individual_evaindex[2][i], Individual_evaindex[3][i], Individual_evaindex[4][i],Individual_evaindex[5][i],Individual_evaindex[6][i], Individual_evaindex[7][i]]) f.close() deffile_name(file_dir): forfilesinos.listdir(file_dir): ifos.path.splitext(files)[1]=='.txt': File_Name.append(files) SUM_LOG_FILE.append("./test/sumlog_"+os.path.splitext(files)[0]+".csv") INDIVIDUAL_LOG_FILE.append("./test/Individual_"+os.path.splitext(files)[0]+".csv") #获取当前目录下所有txt文件名 file_name(".") fori,j,kinzip(File_Name,SUM_LOG_FILE,INDIVIDUAL_LOG_FILE): print(i) print(j) print(k) Sum_Evaindex,Individual_Evaindex=Read_Files(i) Write_SumFiles(filename=j,sum_evaindex=Sum_Evaindex) Write_IndividualFiles(filename=k,sum_evaindex=Sum_Evaindex,Individual_evaindex=Individual_Evaindex)importcsv
参考资料
[1]python操作txt文件中数据教程[1]-使用python读写txt文件:/u013555719/article/details/84553722
[2]
python操作txt文件中数据教程[2]-python提取txt文件:/u013555719/article/details/84554355
c++ 按行读取txt文件并赋值_python操作txt文件中数据教程[3]python读取文件夹中所有txt文件并将数据转为csv文件...