имя кота. *> Datei - PullRequest
       6

имя кота. *> Datei

1 голос
/ 30 ноября 2009

Я ищу перевод Unix-команды

$ cat filename.* > Datei

в программу Python. Может ли кто-нибудь помочь?

Ответы [ 4 ]

2 голосов
/ 30 ноября 2009

Как-то так должно начаться:

import glob

outfile = file("Datei", "wb")
for f in glob.glob("filename.*"):
  infile = open(f, "rb")
  outfile.write(infile.read())
  infile.close()
outfile.close()

ОБНОВЛЕНИЕ : Конечно, входные файлы тоже нужно открывать.

ОБНОВЛЕНИЕ : явно использовать двоичный режим.

1 голос
/ 30 ноября 2009
import glob

output = open('Datei', 'wb')
chunk_size = 8192
for filename in glob.glob('filename.*'):
    input = open(filename, 'rb')
    buffer = input.read(chunk_size)
    while buffer: # False if buffer == ""
        output.write(buffer)
        buffer = input.read(chunk_size)
    input.close()
output.close()
0 голосов
/ 07 декабря 2009

Спасибо за вашу помощь. Мой скрипт сейчас:

LOGFILEDIR="/olatfile/logs"  
VORMONAT=time.strftime("%Y-%m", time.localtime(time.time()-3600*24*30))  
LOGDATEIEN=LOGFILEDIR+"/olat.log."+VORMONAT +"-*"  
print LOGDATEIEN  
OUTPUT=LOGFILEDIR+"/olat.log."+VORMONAT  
LOGFILE=OUTPUT  
output = open(OUTPUT, 'wb')  
chunk_size = 8096  
for filename in glob.glob(LOGDATEIEN):  
    input = open(filename, 'rb')  
    buffer = input.read(chunk_size)  
    while len(buffer) > 0:  
        output.write(buffer)  
        buffer = input.read(chunk_size)  
    input.close()  
output.close()  

Приложение создает ежедневный файл журнала, например, "olat.log.07-12-2009". Моя идея состояла в том, чтобы собрать все журналы из одной бабочки в один лог-файл и проанализировать этот.

0 голосов
/ 30 ноября 2009

альтернативно

import os
f=open("outfile.txt","a")
for file in os.listdir("."):
    if file.startswith("filename."):
         for line in open(file):
               f.write(line)
f.close()
...