Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Ruby

रूबी में फाइलें कैसे पढ़ें और लिखें (उदाहरण के साथ)

आज आप रूबी में फाइलों को पढ़ना और लिखना सीखेंगे ताकि आप सामग्री को निकाल सकें, नई फाइलें बना सकें और अपनी जरूरत की जानकारी पा सकें!

रूबी में फाइलें कैसे पढ़ें और लिखें (उदाहरण के साथ)

यहां बताया गया है कि हम क्या कवर करने जा रहे हैं :

सामग्री

  • 1 रूबी में फ़ाइलें कैसे पढ़ें
  • 2 रूबी में फ़ाइल को कैसे लिखें
  • 3 रूबी फ़ाइल विधियाँ
  • 4 निर्देशिका संचालन
  • 5 FileUtils मॉड्यूल का उपयोग कैसे करें
  • 6 सारांश
    • 6.1 संबंधित

चलो यह करते हैं!

रूबी में फ़ाइलें कैसे पढ़ें

आप रूबी में एक फाइल को इस तरह पढ़ सकते हैं:

  1. फ़ाइल खोलें , open . के साथ विधि।
  2. फ़ाइल पढ़ें , पूरी फ़ाइल, पंक्ति दर पंक्ति, या बाइट्स की एक विशिष्ट मात्रा।
  3. फ़ाइल बंद करें , close . के साथ विधि।

यहां प्रक्रिया के बारे में विस्तार से बताया गया है।

File का प्रयोग करें फ़ाइल खोलने के लिए कक्षा:

file = File.open("users.txt")

परिणामस्वरूप आपको एक File मिलेगा ऑब्जेक्ट, लेकिन अभी तक फ़ाइल की सामग्री नहीं।

अब :

आप फ़ाइल की सामग्री को तीन तरीकों से पढ़ सकते हैं।

सबसे पहले, आप पूरी फाइल पढ़ सकते हैं।

इसे पसंद करें :

file_data = file.read

# "user1\nuser2\nuser3\n"

यदि आप ऐसी फ़ाइल के साथ काम कर रहे हैं जिसमें कई लाइनें हैं तो आप split . कर सकते हैं file_data , या readlines . का उपयोग करें विधि प्लस chomp नई पंक्ति वर्णों को निकालने की विधि।

उदाहरण :

file_data = file.readlines.map(&:chomp)

# ["user1", "user2", "user3"]

जब आप उस फ़ाइल के साथ काम कर रहे हों जिसे आप close करना चाहते हैं यह स्मृति और सिस्टम संसाधनों को मुक्त करने के लिए है।

इसे पसंद करें :

file.close

फ़ाइल को खोलने और बंद करने के विकल्प के रूप में , आप File.read . का उपयोग कर सकते हैं विधि:

file_data = File.read("user.txt").split

# ["user1", "user2", "user3"]

फ़ाइलें पढ़ने के बारे में एक और युक्ति।

यदि आप किसी फ़ाइल को एक बार में एक पंक्ति में संसाधित करना चाहते हैं, तो आप foreach . का उपयोग कर सकते हैं विधि।

उदाहरण :

File.foreach("users.txt") { |line| puts line }

पूरी फ़ाइल को मेमोरी में पढ़ने के बजाय आप एक बार में फ़ाइल को एक पंक्ति में संसाधित करने में सक्षम होंगे, जो बड़ी फ़ाइलों के लिए उपयोगी है।

रूबी में फ़ाइल को कैसे लिखें

यदि आप रूबी का उपयोग करके किसी फ़ाइल में लिखना चाहते हैं:

  1. फ़ाइल को राइट मोड ("w" फ़्लैग) में खोलें
  2. write का उपयोग करें फ़ाइल में डेटा जोड़ने की विधि
  3. यदि आपने ब्लॉक संस्करण का उपयोग नहीं किया है, तो close याद रखें

उदाहरण :

File.open("log.txt", "w") { |f| f.write "#{Time.now} - User logged in\n" }

महत्वपूर्ण :

यह पिछली फ़ाइल सामग्री को फिर से लिखेगा!

यदि आप फ़ाइल में नई सामग्री जोड़ना चाहते हैं, तो "w" (लिखें) ध्वज के बजाय "a" (संलग्न) ध्वज का उपयोग करें।

एक शॉर्टकट File.write . का उपयोग करना है :

File.write("log.txt", "data...")

संलग्न मोड में इस पद्धति का उपयोग करने के लिए :

File.write("log.txt", "data...", mode: "a")

रूबी में किसी फ़ाइल को कोड की केवल एक पंक्ति में लिखने का यह सबसे आसान तरीका है 🙂

एक और बात...

अगर आप किसी फ़ाइल में ऐरे लिखना चाहते हैं, तो आपको पहले उसे एक स्ट्रिंग में बदलना होगा।

यहां बताया गया है :

File.write("log.txt", [1,2,3].join("\n"), mode: "a")

किसी वस्तु को एक स्ट्रिंग में बदलने की इस प्रक्रिया को क्रमांकन कहा जाता है।

रूबी फ़ाइल तरीके

आप फ़ाइलों को पढ़ने और लिखने के अलावा अन्य काम भी कर सकते हैं।

उदाहरण के लिए, आप जानना चाहेंगे कि कोई फ़ाइल मौजूद है या नहीं या वर्तमान निर्देशिका के लिए फाइलों की सूची प्राप्त करने के लिए।

आप जैसे तरीकों का उपयोग करने जा रहे हैं :

  • नाम बदलें
  • आकार
  • मौजूद है?
  • विस्तारनाम
  • बेसनाम
  • दिरनाम
  • निर्देशिका?
  • फ़ाइल?

आइए कुछ उदाहरण देखें :

# Renaming a file
File.rename("old-name.txt", "new-name.txt")

# File size in bytes
File.size("users.txt")

# Does this file already exist?
File.exists?("log.txt")

# Get the file extension, this works even if the file doesn't exists
File.extname("users.txt")
# => ".txt"

# Get the file name without the directory part
File.basename("/tmp/ebook.pdf")
# => "ebook.pdf"

# Get the path for this file, without the file name
File.dirname("/tmp/ebook.pdf")
# => "/tmp"

# Is this actually a file or a directory?
File.directory?("cats")

अंतिम उदाहरण अधिक समझ में आता है यदि आप निर्देशिका सूची की सामग्री के माध्यम से लूपिंग कर रहे हैं।

def find_files_in_current_directory
  entries = Dir.entries(".")

  entries.reject { |entry| File.directory?(entry) }
end

आप फ़ाइल के आँकड़े भी प्राप्त कर सकते हैं, जैसे फ़ाइल का आकार, अनुमतियाँ, निर्माण तिथि, आदि:

File.stat("/tmp")

निर्देशिका संचालन

Dir.glob का उपयोग करना आप एक निश्चित पैटर्न से मेल खाने वाली सभी फाइलों की सूची प्राप्त कर सकते हैं।

यहां कुछ उदाहरण दिए गए हैं:

# All files in current directory
Dir.glob("*")

# All files containing "spec" in the name
Dir.glob("*spec*")

# All ruby files
Dir.glob("*.rb")

कोड की यह एक पंक्ति वर्तमान निर्देशिका . से रूबी में सभी फ़ाइलों को पुनरावर्ती रूप से सूचीबद्ध करेगी :

Dir.glob("**/**")

यदि आप केवल निर्देशिका खोजना चाहते हैं तो इसका उपयोग करें:

Dir.glob("**/**/")

Dir वर्ग का उपयोग करके वर्तमान कार्यशील निर्देशिका . को प्रिंट करना भी संभव है :

Dir.pwd

जांचें कि कोई निर्देशिका खाली है या नहीं:

Dir.empty?("/tmp")
# false

जांचें कि क्या कोई निर्देशिका मौजूद है:

Dir.exists?("/home/jesus")
# true

एक नई निर्देशिका बनाएं:

Dir.mkdir("/tmp/testing")

mktmpdir के साथ एक अस्थायी निर्देशिका बनाएँ:

Dir.mktmpdir do |dir|
  File.write(dir + "/log.txt", "test")
end

FileUtils मॉड्यूल का उपयोग कैसे करें

कुछ अतिरिक्त फ़ाइल हैंडलिंग उपयोगिताएँ हैं जिन्हें आप FileUtils मॉड्यूल के भीतर एक्सेस कर सकते हैं।

उदाहरण के लिए, आप फ़ाइलों की तुलना कर सकते हैं , फ़ाइल को स्पर्श करें (अंतिम पहुंच और संशोधन समय अपडेट करने के लिए ), या फ़ाइलों और निर्देशिकाओं को cp_r . के साथ कॉपी करें ।

इसे पसंद करें :

require 'fileutils'

FileUtils.compare_file("a.txt", "b.txt")
FileUtils.touch("/tmp/lock")
FileUtils.cp_r("data", "backup")

cp_r . में "r" को बीटीडब्ल्यू करें "पुनरावर्ती" के लिए खड़ा है।

सारांश

आपने रूबी में फ़ाइलों और फ़ोल्डरों को प्रबंधित करने का तरीका सीखा है, जैसे अंतर्निहित विधियों जैसे File.read . का उपयोग करके और File.write

पढ़ने के लिए धन्यवाद!


  1. रूबी ग्रेप विधि का उपयोग कैसे करें (उदाहरण के साथ)

    आइए बात करते हैं grep . के बारे में विधि। यह विधि आपके लिए क्या कर सकती है? आप ग्रेप का उपयोग एरेज़ और रेंज जैसी असंख्य वस्तुओं को फ़िल्टर करने के लिए कर सकते हैं। “लेकिन चुनें पहले से ही ऐसा करता है!” हां, लेकिन grep एक अलग तरीके से काम करता है और यह अलग परिणाम देता है। आइए कुछ उदाहरण देखें।

  1. रूबी मानचित्र विधि का उपयोग कैसे करें (उदाहरण के साथ)

    मैप एक रूबी विधि है जिसका उपयोग आप ऐरे, हैश और रेंज के साथ कर सकते हैं। मानचित्र का मुख्य उपयोग डेटा को ट्रांसफ़ॉर्म करना है। उदाहरण के लिए : स्ट्रिंग्स की एक सरणी को देखते हुए, आप प्रत्येक स्ट्रिंग पर जा सकते हैं और प्रत्येक वर्ण को अपरकेस बना सकते हैं। या यदि आपके पास User . की सूची है ऑब्जेक्

  1. विंडोज 10 में मेमोरी डंप फाइल कैसे पढ़ें

    यदि आपका पीसी हाल ही में क्रैश हुआ है, तो आपको ब्लू स्क्रीन ऑफ डेथ (बीएसओडी) का सामना करना पड़ा होगा, जो क्रैश के कारणों को सूचीबद्ध करता है और फिर पीसी अचानक बंद हो जाता है। अब बीएसओडी स्क्रीन केवल कुछ सेकंड के लिए दिखाई जाती है, और उस समय दुर्घटना के कारण का विश्लेषण करना संभव नहीं है। शुक्र है, ज