2010-02-12 5 views

Répondre

3

par exemple

import os,shutil 
root="/home" 
destination="/tmp" 
directory = os.path.join(root,"mydir") 
os.chdir(directory) 
for file in os.listdir("."): 
    flag="" 
    #check contents of file ? 
    for line in open(file): 
     if "something" in line: 
      flag="found" 
    if flag=="found": 
     try: 
      # or use os.rename() on local 
      shutil.move(file,destination) 
     except Exception,e: print e 
     else: 
      print "success" 

Si vous regardez le shutil doc, sous .move(), il dit

shutil.move(src, dst)¶ 

    Recursively move a file or directory to another location. 
    If the destination is on the current filesystem, then simply use rename. 
Otherwise, copy src (with copy2()) to the dst and then remove src. 

Je suppose que vous pouvez utiliser copy2() pour passer à un autre système de fichiers.

+0

Ne donnez pas de code aux gens avec 'except Exception', ce qui est un bug. Vous ne fournissez pas de réponse raisonnable à de nombreuses exceptions pouvant être déclenchées, telles que "KeyboardInterrupt". –

+1

Dans 2.5, Exception hérite de BaseException. Pensez-vous qu'il va attraper KeyboardInterrupt? OP a 3.1 et 2.6. – ghostdog74

1
+0

peut shutil.move() déplacer des fichiers sur le réseau? – Gabe

+1

Il peut déplacer des fichiers n'importe où sur le système de fichiers, y compris les lecteurs réseau montés. –

Questions connexes