【问题标题】:cat filename.* > Dateicat 文件名。* > Datei
【发布时间】:2010-12-21 14:01:14
【问题描述】:

我正在寻找翻译 unix 命令

$ cat filename.* > Datei

进入 Python 程序。有人可以帮忙吗?

【问题讨论】:

  • 请将你写的代码贴到 far。这不是“Do My Homework For Me.COM”。

标签: python cat


【解决方案1】:

这样的事情应该可以帮助您入门:

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 确实返回文件名列表,而不是文件对象。
  • 为了可移植性,您还应该使用二进制模式('rb'、'wb')打开文件。否则在 Windows 上会发生糟糕的事情。
  • @Ferdinand, @Ferran:谢谢,已修复!
【解决方案2】:
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 更有效,因为它不必扫描换行符。
【解决方案3】:

或者

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()

【讨论】:

    【解决方案4】:

    感谢您的帮助。 我现在的脚本:

    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” 我的想法是将一只蛾子的所有日志收集到一个日志文件中并分析这个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-16
      • 2014-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-09
      • 2021-09-16
      相关资源
      最近更新 更多