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" 

यदि आप बहु-लाइन वाली फाइल के साथ काम कर रहे हैं तो आप या तो file_data को split कर सकते हैं, या नई लाइन वर्णों को हटाने के लिए 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") 

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

रूबी फाइल मेथड्स

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

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

आप निम्न जैसे मेथड्स का उपयोग करने जा रहे हैं:

  • rename
  • size
  • exists?
  • extname
  • basename
  • dirname
  • directory?
  • file?

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

 # फाइल का नाम बदलना
File.rename("old-name.txt", "new-name.txt")
# फाइल साइज बाइट्स में
File.size("users.txt")
# क्या यह फाइल पहले से मौजूद है?
File.exists?("log.txt")
# फाइल एक्सटेंशन प्राप्त करें, यह तब भी काम करता है जब फाइल मौजूद न हो
File.extname("users.txt") # => ".txt"
# डायरेक्टरी भाग के बिना फाइल नाम प्राप्त करें
File.basename("/tmp/ebook.pdf") # => "ebook.pdf"
# इस फाइल का पथ प्राप्त करें, फाइल नाम के बिना
File.dirname("/tmp/ebook.pdf") # => "/tmp"
# क्या यह वास्तव में एक फाइल है या डायरेक्टरी?
File.directory?("cats") 

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

 def find_files_in_current_directory
  entries = Dir.entries(".")
  entries.reject { |entry| File.directory?(entry) }
end 

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

 File.stat("/tmp") 

डायरेक्टरी ऑपरेशन्स

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

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

 # वर्तमान डायरेक्टरी में सभी फाइलें
Dir.glob("*")
# नाम में "spec" वाली सभी फाइलें
Dir.glob("*spec*")
# सभी रूबी फाइलें
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") 

Btw cp_r में “r” “रिकर्सिव” के लिए है।

सारांश

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

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


  1. Ruby के grep मेथड में महारत: कोड उदाहरणों के साथ एक व्यावहारिक गाइड Ruby के grep मेथड में महारत: कोड उदाहरणों के साथ एक व्यावहारिक गाइड

    आइए grep मेथड के बारे में बात करते हैं। यह मेथड आपके लिए क्या कर सकता है? आप enumerable ऑब्जेक्ट्स को फ़िल्टर करने के लिए Grep का उपयोग कर सकते हैं, जैसे Arrays और Ranges। "लेकिन select पहले से ही ऐसा करता है!" हाँ, लेकिन grep अलग तरीके से काम करता है और अलग परिणाम उत्पन्न करता है। आइए कुछ

  1. Ruby के Map मेथड में महारत: उदाहरणों के साथ एक व्यावहारिक गाइड Ruby के Map मेथड में महारत: उदाहरणों के साथ एक व्यावहारिक गाइड

    Map एक Ruby मेथड है जिसका उपयोग आप Arrays, Hashes और Ranges के साथ कर सकते हैं। map का मुख्य उपयोग डेटा को ट्रांसफॉर्म करना है। उदाहरण के लिए: स्ट्रिंग्स की एक सरणी दिए जाने पर, आप हर स्ट्रिंग पर जा सकते हैं और हर कैरेक्टर को UPPERCASE बना सकते हैं। या यदि आपके पास User ऑब्जेक्ट्स की एक सूची है... आ

  1. विंडोज 10 मेमोरी डंप विश्लेषण मास्टर करें: चरण-दर-चरण गाइड विंडोज 10 मेमोरी डंप विश्लेषण मास्टर करें: चरण-दर-चरण गाइड

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