2010-09-28 179 views
21

我想從文件列表中刪除內容。刪除文件中的所有內容

編輯:

我有文件列表。

文件1 文件2 文件3

包含一堆線這些文件...

我想刪除每個文件中的所有行。

+1

你的具體問題是什麼? – 2010-09-28 18:44:25

+0

@Timo。這聽起來像他有一個文件列表,他想刪除/刪除他們的內容。第一次修訂清楚地表明瞭這一點。如果他在這裏發帖,他可能想知道如何實現。不是所有人都能說流利的英語。 – z5h 2010-09-28 18:51:58

回答

37

看起來像你需要截斷文件。 這樣做:

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

'File.open('/ tmp/file','w'){}'應該足夠了。 – 2010-09-28 19:17:23

+16

'truncate'也可以作爲類方法使用,不需要顯式地打開文件:'File.truncate('/ path/to/file',0)'。但請注意,這被記錄爲「不適用於所有平臺」。 (通常意味着POSIX,即沒有JRuby,沒有IronRuby,沒有Windows。) – 2010-09-28 19:39:13

15

要截斷文件:

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

要截斷的文件列表:

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

由於截斷並不適用於所有平臺上,使用f = open('filename', File::TRUNC) {}