2011-05-20 75 views
1

報價的跡象。例如我有文件file_name這樣的內容:如何防止File.readlines

Just some text, 
nothing more 

然後我跑樣這個代碼:

lines = File.open(file_name, "r").readlines 
# do something do with lines 
File.open(file_name, "w").write(lines) 

我會得到這個文本

"Just some text," 
"nothing more" 

如何防止"在這裏簽字?我想要不帶引號的文字。由於

+2

你不應該得到這些。你確定你的「用線做些什麼」塊沒有添加引號嗎?如果你像引用你的程序一樣運行你的程序,你會得到報價嗎? (我沒有) – 2011-05-20 15:36:52

回答

3

Array#inspect。試試這個(些風格調整拋出):

lines = File.readlines(file_name) 
File.open(file_name, 'w') { |f| f.write(lines.join) } 
+0

不應該是'lines.join(「\ n」)'? – 2011-05-20 21:02:42

+0

不,因爲readlines讀取的行包含行結束符, – bheeshmar 2011-05-23 19:31:14

1

如果你只關心引號引起各行

好吧,讓我們嘗試一遍

lines.gsub(/^"|"$/, '') 

應該如果您使用Ruby 1.9.2,Array#to_s工程工作