我有一個名爲「MyDir」的目錄。我使用Ubuntu操作系統。我有7個文件與各種擴展。我想編寫一個Ruby程序來爲每個文件添加一個時間戳。Ruby代碼將時間戳添加到特定目錄中的每個文件
回答
你需要得到在目標目錄中的所有文件(見Dir.glob(...)
)的列表,然後再打開文件進行寫入「 append mode「(見File.open(...)
),並簡單地寫入時間戳。例如:
def add_timestamps(dir, timestamp=Time.now)
Dir[File.join(dir, '*')].each do |filename|
File.open(filename, 'a') { |f| f.puts(timestamp) }
end
end
add_timestamps('MyDir') # OR...
add_timestamps('MyDir', Time.parse('2001-02-03T04:05:06Z'))
,如果你想將它添加到文件名
t = Time.new.to_i; Dir["MyDir/*"].each { |x| File.rename(x,"#{x}.#{t}") }
# or dont add timestamp on files that are ending with 10 digits
t = Time.new.to_i; Dir["MyDir/*"].each { |x| File.rename(x,"#{x}.#{t}") unless /\.\d{10}$/.match(x) }
#if you want to add it to the end of the file's content
t = Time.new.to_i; Dir["MyDir/*"].each { |x| File.open(x,'a') { |f| f.write("\n#{t}\n") } }
謝謝!它正在重命名我的文件與一些數字,但在該文件裏面沒有任何東西寫入 – 2012-07-27 12:47:01
@ RoRProg..was有內容之前的文件? – rubyprince 2012-07-27 12:49:20
不是他們是空文件。我只是想在它裏面添加時間戳。所以,當我打開這些文件時,我應該看到裏面印有時間日期等。 – 2012-07-27 13:06:21
- 1. 將Python代碼輸出到文件並將時間戳添加到文件名
- 2. 將時間戳添加到文件JAVAR
- 3. 將時間戳添加到文件名
- 4. Android將時間戳添加到文件
- 5. 將_添加到文件夾中的每個文件/目錄
- 6. 將時間戳添加到ElasticSearch中添加的每個文檔 - 嵌套2.0
- 7. 將時間戳記添加到資源文件條目
- 8. 將48小時添加到CSV文件中的時間戳
- 9. 添加時間戳到CSV文件的每一行的末尾
- 10. 將時間添加到數據庫中具有特定時間戳的行
- 11. 將字段添加到Unix中每個記錄的文件的特定位置
- 12. 將時間添加到時間戳
- 13. PHP:將時間添加到時間戳
- 14. 將時間添加到時間戳
- 15. 在每次迭代中添加一個月的時間戳
- 16. 將Ruby代碼添加到JavaScript代碼
- 17. 將文件添加到zip存檔的特定子目錄
- 18. 如何將庫的.pc文件添加到特定目錄?
- 19. 將時間戳記添加到BASH中的mv文件名
- 20. 將特定時間添加到現有日期戳
- 21. 的Python:添加時間戳到每個對象列表中的
- 22. 將特定行添加到帶有Ruby的文件中
- 23. 如何在不修改目錄的修改時間戳的情況下將文件添加到目錄?
- 24. 添加時間戳命令重定向到文本文件
- 25. 將時間戳添加到文件的Gradle腳本
- 26. 每日在日誌文件中添加時間戳
- 27. 將日期和時間添加到MySQL中的時間戳中
- 28. Ruby - 時間戳昨天到特定時間
- 29. Extjs-將時間戳添加到時間戳
- 30. 添加兩個小時到時間戳
[你嘗試過這麼遠嗎?(http://mattgemmell.com/2008/12/08/what-have-you-tried/) – maerics 2012-07-27 12:42:42
我試圖打開文件&添加Timestamp = Time.now.to_i但它沒有工作 – 2012-07-27 13:04:40
直接在您的問題中發佈您嘗試過的代碼,這樣做會幫助其他人識別您做錯了什麼(以及您正在嘗試做什麼)。 – maerics 2012-07-27 14:38:13