2010-09-28 9 views
21

Je veux supprimer le contenu de la liste des fichiers.Supprimer tout le contenu du fichier

EDIT:

J'ai liste des fichiers.

fichier1 fichier2 file3

Les fichiers contenant des lignes ... tas

Je veux supprimer toutes les lignes de chaque fichier.

+1

Quelle est votre question spécifique? –

+0

@Timo. On dirait qu'il a une liste de fichiers et qu'il veut supprimer/supprimer leur contenu. C'était clair à partir de la première révision. S'il poste ici, il veut probablement savoir comment cela peut être réalisé. Pas tout le monde ici parle couramment l'anglais. – z5h

Répondre

37

Il semble que vous ayez besoin de tronquer le fichier. faire quelque chose comme:

File.open('/tmp/file', 'w') {|file| file.truncate(0) } 
+11

'File.open ('/ tmp/file', 'w') {}' devrait suffire. –

+16

'truncate' est également disponible en tant que méthode de classe, il n'est pas nécessaire d'ouvrir explicitement le fichier:' File.truncate ('/ path/to/file', 0) '. Notez, cependant, que cela est documenté comme "Non disponible sur toutes les plates-formes." (Ce qui signifie généralement POSIX uniquement, c'est-à-dire pas de JRuby, pas de IronRuby, pas de Windows.) –

15

Pour tronquer un fichier:

File.truncate('/path/to/file', 0) 

tronquer liste des fichiers:

[file1, file2, file3].each { |file| File.truncate(file, 0) } 
0

Depuis troncature ne sont pas disponibles sur toutes les plateformes, utilisez f = open('filename', File::TRUNC) {}

Questions connexes