স্থানীয় ফাইল বা url থেকে একটি আইও স্ট্রিম খুলুন


104

আমি জানি যে অন্যান্য ভাষায় এমন লিবস রয়েছে যেগুলি একটি স্ট্রিং নিতে পারে যা কোনও স্থানীয় ফাইল বা ইউআরএল পাথ রাখতে পারে এবং এটি একটি পঠনযোগ্য আইও স্ট্রিম হিসাবে খুলতে পারে।

রুবিতে এটি করার কোনও সহজ উপায় আছে?

উত্তর:


224

ওপেন-ইউরি হ'ল স্ট্যান্ডার্ড রুবি লাইব্রেরির একটি অংশ এবং এটি এমন একটি আচরণের পুনরায় সংজ্ঞা দেবে openযাতে আপনি একটি ইউআরএল, পাশাপাশি একটি স্থানীয় ফাইল খুলতে পারেন। এটা একটা ফেরৎ Fileবস্তু, তাই আপনার মত পদ্ধতি কল করতে সক্ষম হওয়া উচিত readএবং readlines।

require 'open-uri'
file_contents = open('local-file.txt') { |f| f.read }
web_contents  = open('http://www.stackoverflow.com') {|f| f.read }

2
এখানে অ্যাকশনমেলার সংযুক্তি থেকে আপনার মতো কোনও ফাইল অবজেক্ট ফেরত দেওয়ার কোনও উপায় আছে কি?
— এন্টারপ্রাইটিস

9
জেনে নিন এটি এখন বেশ পুরানো, তবে আপনি এটি করতেও পারেন:content = open("http://example.com").read
— স্বয়ংক্রিয় 18

6
আপনি পারেন, তবে বন্ধের বাইরে এটি করার ফলে ফাইলের বর্ণনাটি খোলা থাকবে। এটি কিছু ব্যবহারের ক্ষেত্রে সমস্যা হতে পারে।
— অ্যারন হিন্নি

19
নোট যে কোনও ফাইল স্ট্রিমopen-uri করবে না , তাই আপনি এটির প্রথম 4k পড়তে পারবেন না। খোলার মুহুর্তে একটি সম্পূর্ণ ফাইল মেমোরিতে পড়বে । open-uri
— zed_0xff

3
URI.parse('http://www.stackoverflow.com').open { |f| f.read }আপনি যদি কোনও বীমা খুঁজার উপায় খুঁজছেন তবে তা কল করবে না Kernal.open। রুবোকপ সুরক্ষা বিধিগুলিও পেয়ে যায়।
— newdark-it
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.