|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 546397641 于 2017-11-13 23:00 编辑
问题:一个目录下有4个文件以及文件内容,分别读取,并全部写入到一个文件中
例如:
下面是我自己写的一段代码,可以结果是:
不知道后面怎么弄?求大牛
注:
我的代码:
import os
path = "C:\\Users\\WIN7\\Desktop\\files"
dirs = os.listdir( path )
for file in dirs:
child = os.path.join('%s\\%s' % (path, file))
f=open(child,"r")
e=open("%s\\add1.txt"%path,"a")
e.writelines(f)
f.close()
e.close()
本帖最后由 xindong 于 2017-11-14 08:48 编辑
这样的要求当然需要先把所有的文件都读入后再进行处理了。另外,可以输出.csv文件格式,数据之间用逗号隔开,可以直接用excel打开的。
这是代码,注意我测试的时候,文件路径换了
- # -*- coding: utf-8 -*-
- """
- Created on Tue Nov 14 04:35:46 2017
- """
- import os
- path = "C:\\temp\\files"
- dirs = os.listdir( path )
- first_file = 1
- h = []
- for file in dirs: # 逐个打开并读入文件, 将一个文件的内容存放在一个列表内,所有的文件内容存放在一个二维列表中
- child = os.path.join('%s\\%s' % (path, file))
- f=open(child,"r")
- g = f.readlines()
- if first_file == 1:
- h = [g]
- first_file = 0
- else:
- h = h + [g]
- f.close()
- e=open("%s\\add1.csv"%path,"a")
- num_files = len(h) # 文件个数
- num_lines = len(h[0]) # 每个文件的行数,假定所有的文件都具有相同的行数
- for i in range(0, num_lines): # 行循环
- first_element = 1 # 标志变量, firt_element = 1 表面当前是每一行第一个元素
- for j in range(0, num_files): # 文件循环
- temp = h[j][i].split() # 读出文件的一行内容,并根据空格进行切分
- if first_element == 1: # 是否是每一行第一个元素, 第一个元素只使用一次
- e.writelines(temp[0])
- first_element = 0 # 标志位清除
- e.writelines(',') # 加入逗号分隔符
- e.writelines(temp[1]) # 写入第二个元素
- e.writelines('\n') # 每一行处理完成后加入回车换行
- e.close()
-
复制代码
输出结果:
EnsEMBL_Gene_ID,21MT1,31MT1,41MT1,51MT1
gene_1,178,152,145,45
gene_2,692,356,78,25
|
|