您的位置:首页 > 编程语言 > Python开发

python 将多个文件添加到一个文件中

2012-05-23 11:50 274 查看
昨天终于搞定了,刚开始学习python。写完之后还是比较有成就感的。虽然比较菜。

#!/usr/bin/env python
# coding: utf-8
# author: h3i_dan
# filename: mergefile.py
# version: v1.0
############################

import os

def getdirs(a):
  '''得到iislog目录下有那些内容,把每个log文件以列表的形式输出'''
  export = []
  contents = os.walk(a)
  for root, dirs, files in contents:
    for file_a in files:
      export.append(os.path.join(root, file_a)) # os.path.join() 将路径和文件链接起来

  return export

def getcont(b):
  ''' 通过循环分别读取每个列表中的你想得到的文件的名称,将她们的内容放到123.txt中'''
  for i in getdirs(a):
    if b in i:

      filename = open(i, 'r')
      collect = filename.read()
      total = open('d:\\123.txt', 'a')
      total.writelines(collect)

    else:
      print 'nothing'
  filename.close()
  total.close()

if __name__ == '__main__':

  a = 'e:\\'
  b = raw_input('Your Required documents >> ')
  getcont(b)


html段落还不会写,会写的时候改正过来。

这个小程序,历尽了千辛万苦啊。写了好几天,最开始不知道怎么遍历目录,知道用os之后不知道用里面的什么函数。之后发现读取不了文件,最开始的代码是这样的:

def getdirs(a):
  export = []
  contents = os.walk(a)
  for root, dirs, files in contents:
      export.append(files)

  return export

def getcont(c):

  for i in getdirs(a):

    for b in i:

      if  b == c:

        filename = open(b, 'r')
        collect = filename.read()
        total = open('d:\\123.txt', 'a')
        total.writelines(collect)

      else:
        print 'nothing'
  filename.close()
  total.close()


这样写的话,可以读取出文件的名称,可是,仅仅只能读出文件的名称。没有文件目录。filename = open(b, 'r') filename在open的时候就会找不到b。给出一个报错。

百思不得其解啊。后来李同学帮了这个忙。多谢李同学了。通过使用os.path.join()这个方法,就很容易了。

ok,其实写这个小程序就是为了方便自己iis日志。很多站点的流量比较小,他们又在同一个服务器里面,看起来很麻烦。通过这个小程序,可以把他们放到一起查看。有一个弊端,就是你分不清出现问题的日志是哪一个站点的了。不过,可以通过ctrl-F在日志文件排查了。

特别鸣谢:李同学
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: