代码拉取完成,页面将自动刷新
同步操作将从 王诗翔/Cookbook-for-R-Chinese 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
# -*- coding:utf-8 -*-
import os # 读取txt文件所需要的包
import linecache # 读取指定行函数linecache.getline(file_ob, line_num)所在的包
ldata = []
data = []
# file_ob_list是所有文件(比如10个txt)对象组成的列表,for用来循环读取每一个文件,读取一个文件的方式是一行行读入,
# 每次循环一次for就读取所有文件的某一行,因为这一行的第一列都是基因名称,都是一样的
line_num = 2 # 从txt的第一行开始读入
fileA = "C:\\Users\\iver3on\\Desktop\\ESTIMATE scores.txt"
fileB = "C:\\Users\\iver3on\\Desktop\\times.txt"
total_line = len(open(fileA).readlines()) # 计算一个txt中有多少行
total_line2 = len(open(fileB).readlines()) # 计算一个txt中有多少行
file = []
fff = linecache.getline(fileB, 1)
file.append(linecache.getline(fileA, 1).strip() + '\t' + fff.split('\t')[1] + '\t' + fff.split('\t')[2])
newfile = []
while line_num <= total_line: # 只有读完的行数小于等于总行数时才再读下一行,否则结束读取
# for file_ob in file_ob_list: # 按顺序循环读取所有文件
line = linecache.getline(fileA, line_num) # 读取这个文件的第line_num行
line = line.strip() # 去掉这一行最后一个字符/n 即换行符
if line is None or len(line) == 0:
break
fields = line.split('\t') # 将这一行划分为两列,存放到列表中,fields是这样的: ['ENSG00000242268.2','0.0']
prob = fields[0].replace('.','-') # fields[0]是'ENSG00000242268.2' fields[1]是'0.0'
# print prob
line_num2 = 2
while line_num2 <= total_line2:
lineB = linecache.getline(fileB, line_num2) # 读取这个文件的第line_num行
fieldsB = lineB.split('\t') # 将这一行划分为两列,存放到列表中,fields是这样的: ['ENSG00000242268.2','0.0']
tmpB = fieldsB[0]
if prob.__contains__(tmpB):
# print prob
# print tmpB
line = line + '\t'+fieldsB[1] + '\t' + fieldsB[2]
# print line
file.append(line)
# fields.append(fieldsB[1]+'\t')
# fields.append(fieldsB[2]+'\t')
line_num2 = line_num2 + 1
line_num = line_num + 1 # 行数加1,好接着读取每一个文件的第二行
ldata.append(
data)
data = [] # 清空data用来存放所有txt的下一行
f = open("C:\\Users\\iver3on\\Desktop\\result.txt", "w+")
for tmp in file:
print tmp
f.write(tmp)
#f.write('\n')
f.close()
# f = open("F:/data1.txt", "w+") # 创建存放数据的文件
# for i, p in enumerate(
# ldata): # 将数据写入文件,i是enumerate()函数返回的ldata的某个元素p(就是一行数据,如['ENSG00000242268.2','0.0','0.10']从第一个开始)开始的序号(0,1,2等)
# for j, q in enumerate(p): # 读取p(如['ENSG00000242268.2','0.0','0.10'])中的每一个元素
# f.write(q + "\t") # 将这个元素写到txt中,每写一个加入一个“\t”(它代表excel中的一根竖线)
# print i # 显示一下打印到了第多少行
# f.write("\n") # 每写完一行,就写入一个换行符"\n",好使的接下来的数据写入到第二行
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。