【发布时间】:2010-12-21 14:01:14
【问题描述】:
我正在寻找翻译 unix 命令
$ cat filename.* > Datei
进入 Python 程序。有人可以帮忙吗?
【问题讨论】:
-
请将你写的代码贴到 far。这不是“Do My Homework For Me.COM”。
我正在寻找翻译 unix 命令
$ cat filename.* > Datei
进入 Python 程序。有人可以帮忙吗?
【问题讨论】:
这样的事情应该可以帮助您入门:
import glob
outfile = file("Datei", "wb")
for f in glob.glob("filename.*"):
infile = open(f, "rb")
outfile.write(infile.read())
infile.close()
outfile.close()
UPDATE:当然,输入文件也需要打开。
UPDATE:显式使用二进制模式。
【讨论】:
open()你的输入文件。 glob.glob 确实返回文件名列表,而不是文件对象。
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()
【讨论】:
readlines 更有效,因为它不必扫描换行符。
或者
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()
【讨论】:
感谢您的帮助。 我现在的脚本:
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” 我的想法是将一只蛾子的所有日志收集到一个日志文件中并分析这个。
【讨论】: