Je cherche à traduire la commande unixnom de chat. *> Datei
$ cat filename.* > Datei
dans un programme Python. Quelqu'un peut-il aider?
Je cherche à traduire la commande unixnom de chat. *> Datei
$ cat filename.* > Datei
dans un programme Python. Quelqu'un peut-il aider?
Quelque chose comme cela devrait vous aider à démarrer:
import glob
outfile = file("Datei", "wb")
for f in glob.glob("filename.*"):
infile = open(f, "rb")
outfile.write(infile.read())
infile.close()
outfile.close()
MISE À JOUR: Bien sûr, les fichiers d'entrée doivent être ouverts, aussi.
MISE À JOUR: Explicite utilise le mode binaire.
Vous avez oublié de 'ouvrir()' vos fichiers d'entrée. 'glob.glob' renvoie une liste de noms de fichiers, pas d'objets de fichiers. –
pour les fichiers binaires est préférable de faire out.write (open (f) .read()) – Ferran
Pour la portabilité, vous devez également ouvrir vos fichiers avec en mode binaire ('rb', 'wb'). Des choses méchantes vont arriver sur Windows autrement. –
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()
Cela peut être plus efficace que readlines, car il n'a pas à rechercher les caractères de nouvelle ligne. –
alternativement
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()
Merci pour votre aide. Mon script maintenant:
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()
Une application crée tous les jours un fichier journal comme « olat.log.07-12-2009 » Mon idée était de chat tous les journaux d'un papillon de nuit dans un fichier journal et analyser celui-ci.
Veuillez poster le code que vous avez écrit pour loin. Ce n'est pas "Do My Homework For Me.COM". –