জুলিয়ার লাইনে ফাইল লাইন পড়তে কীভাবে?


18

আমি কীভাবে একটি পাঠ্য ফাইল খুলি এবং এটি লাইন লাইন পড়তে পারি? দুটি উত্তর রয়েছে যার উত্তর সম্পর্কে আমি আগ্রহী:

  1. একবারে অ্যারেতে সমস্ত লাইন পান।
  2. একবারে প্রতিটি লাইন প্রক্রিয়া করুন।

দ্বিতীয় ক্ষেত্রে আমি একবারে সমস্ত লাইন স্মৃতিতে রাখতে চাই না।

উত্তর:


25

লাইনের অ্যারে হিসাবে একবারে মেমরির মধ্যে একটি ফাইল পড়া readlinesফাংশনটির জন্য কেবল একটি কল :

julia> words = readlines("/usr/share/dict/words")
235886-element Array{String,1}:
 "A"
 "a"
 "aa"
 
 "zythum"
 "Zyzomys"
 "Zyzzogeton"

ডিফল্টরূপে এটি নিউলাইনগুলি বাতিল করে দেয় তবে আপনি যদি এটি রাখতে চান তবে আপনি কীওয়ার্ড যুক্তিটি পাস করতে পারেন keep=true:

julia> words = readlines("/usr/share/dict/words", keep=true)
235886-element Array{String,1}:
 "A\n"
 "a\n"
 "aa\n"
 
 "zythum\n"
 "Zyzomys\n"
 "Zyzzogeton\n"

আপনার যদি ইতিমধ্যে খোলা ফাইল অবজেক্ট থাকে তবে আপনি এটিকে ফাংশনেও দিতে পারেন readlines:

julia> open("/usr/share/dict/words") do io
           readline(io) # throw out the first line
           readlines(io)
       end
235885-element Array{String,1}:
 "a"
 "aa"
 "aal"
 
 "zythum"
 "Zyzomys"
 "Zyzzogeton"

এটি readlineফাংশনটি দেখায় , যা একটি খোলা আই / ও অবজেক্ট থেকে একক লাইন পড়ে, বা কোনও ফাইলের নাম দেওয়ার পরে, ফাইলটি খোলে এবং সেখান থেকে প্রথম লাইনটি পড়ে:

julia> readline("/usr/share/dict/words")
"A"

আপনি যদি একবারে ফাইলের বিষয়বস্তুগুলি লোড করতে না চান (বা আপনি যদি কোনও নেটওয়ার্ক সকেটের মতো স্ট্রিমিং ডেটা প্রক্রিয়াকরণ করছেন), তবে আপনি eachlineফাংশনটি একবারে লাইন তৈরির পুনরুক্তি পেতে পারেন :

julia> for word in eachline("/usr/share/dict/words")
           if length(word) >= 24
               println(word)
           end
       end
formaldehydesulphoxylate
pathologicopsychological
scientificophilosophical
tetraiodophenolphthalein
thyroparathyroidectomize

eachlineফাংশন, পছন্দ করতে পারেন readlines, এছাড়াও একটি খোলা ফাইল হ্যান্ডেল থেকে লাইন পড়তে দেওয়া হবে। আপনি ফাইলটি খোলার মাধ্যমে এবং readlineবারবার কল করে "নিজের নিজস্ব রোল" ইটারেটরও রাখতে পারেন :

julia> open("/usr/share/dict/words") do io
           while !eof(io)
               word = readline(io)
               if length(word) >= 24
                   println(word)
               end
           end
       end
formaldehydesulphoxylate
pathologicopsychological
scientificophilosophical
tetraiodophenolphthalein
thyroparathyroidectomize

এটি আপনার পক্ষে যা eachlineকরে তার সমতুল্য এবং এটি নিজেই করা খুব বিরল তবে আপনার যদি প্রয়োজন হয় তবে ক্ষমতা আছে। চরিত্র অনুসারে কোনও ফাইলের চরিত্রটি পড়ার বিষয়ে আরও তথ্যের জন্য, এই প্রশ্নটি দেখুন এবং উত্তরটি দেখুন: আমরা কীভাবে জুলিয়া একবারের জন্য একটি। Txt ফাইলের প্রতিটি অক্ষরটি পড়তে ব্যবহার করব?

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.