Delimited Files
DelimitedFiles.readdlm
— Methodreaddlm(source, delim::AbstractChar, T::Type, eol::AbstractChar; header=false, skipstart=0, skipblanks=true, use_mmap, quotes=true, dims, comments=false, comment_char='#')
اقرأ مصفوفة من المصدر حيث تعطي كل سطر (يفصل بينه eol
) صفًا واحدًا، مع العناصر مفصولة بالمحدد المعطى. يمكن أن يكون المصدر ملف نصي، أو دفق، أو مصفوفة بايت. يمكن استخدام الملفات المماثة للذاكرة عن طريق تمرير التمثيل المصفوفي للجزء المماثل كمصدر.
إذا كان T
نوعًا عدديًا، فإن النتيجة هي مصفوفة من ذلك النوع، مع أي عناصر غير عددية كـ NaN
لأنواع النقاط العائمة، أو صفر. تشمل القيم المفيدة الأخرى لـ T
String
، AbstractString
، و Any
.
إذا كان header
هو true
، فسيتم قراءة الصف الأول من البيانات كعنوان وسيتم إرجاع الزوج (data_cells, header_cells)
بدلاً من data_cells
فقط.
تحديد skipstart
سيتجاهل العدد المقابل من الأسطر الأولية من الإدخال.
إذا كان skipblanks
هو true
، فسيتم تجاهل الأسطر الفارغة في الإدخال.
إذا كان use_mmap
هو true
، فإن الملف المحدد بواسطة source
يتم تعيينه في الذاكرة من أجل تسريع محتمل إذا كان الملف كبيرًا. الافتراضي هو false
. في نظام ملفات Windows، يجب عدم تعيين use_mmap
إلى true
ما لم يتم قراءة الملف مرة واحدة فقط وأيضًا لا يتم الكتابة إليه. توجد بعض الحالات الحدودية حيث يكون نظام التشغيل شبيهًا بـ Unix ولكن نظام الملفات شبيهًا بـ Windows.
إذا كان quotes
هو true
، فإن الأعمدة المحاطة بعلامات اقتباس مزدوجة (") مسموح لها باحتواء أسطر جديدة ومحددات أعمدة. يجب الهروب من علامات الاقتباس المزدوجة داخل حقل مقتبس بعلامة اقتباس مزدوجة أخرى. قد يؤدي تحديد dims
كزوج من الصفوف والأعمدة المتوقعة (بما في ذلك العنوان، إن وجد) إلى تسريع قراءة الملفات الكبيرة. إذا كان comments
هو true
، فإن الأسطر التي تبدأ بـ comment_char
والنص الذي يلي comment_char
في أي سطر يتم تجاهله.
أمثلة
julia> using DelimitedFiles
julia> x = [1; 2; 3; 4];
julia> y = [5; 6; 7; 8];
julia> open("delim_file.txt", "w") do io
writedlm(io, [x y])
end
julia> readdlm("delim_file.txt", '\t', Int, '\n')
4×2 Matrix{Int64}:
1 5
2 6
3 7
4 8
julia> rm("delim_file.txt")
DelimitedFiles.readdlm
— Methodreaddlm(source, delim::AbstractChar, eol::AbstractChar; options...)
إذا كانت جميع البيانات رقمية، ستكون النتيجة مصفوفة رقمية. إذا لم يكن من الممكن تحليل بعض العناصر كأرقام، يتم إرجاع مصفوفة غير متجانسة من الأرقام والسلاسل النصية.
DelimitedFiles.readdlm
— Methodreaddlm(source, delim::AbstractChar, T::Type; options...)
فاصل نهاية السطر يؤخذ كـ \n
.
أمثلة
julia> using DelimitedFiles
julia> x = [1; 2; 3; 4];
julia> y = [1.1; 2.2; 3.3; 4.4];
julia> open("delim_file.txt", "w") do io
writedlm(io, [x y], ',')
end;
julia> readdlm("delim_file.txt", ',', Float64)
4×2 Matrix{Float64}:
1.0 1.1
2.0 2.2
3.0 3.3
4.0 4.4
julia> rm("delim_file.txt")
DelimitedFiles.readdlm
— Methodreaddlm(source, delim::AbstractChar; options...)
يتم أخذ محدد نهاية السطر كـ \n
. إذا كانت جميع البيانات رقمية، ستكون النتيجة مصفوفة رقمية. إذا لم يكن بالإمكان تحليل بعض العناصر كأرقام، يتم إرجاع مصفوفة غير متجانسة من الأرقام والسلاسل النصية.
أمثلة
julia> using DelimitedFiles
julia> x = [1; 2; 3; 4];
julia> y = [1.1; 2.2; 3.3; 4.4];
julia> open("delim_file.txt", "w") do io
writedlm(io, [x y], ',')
end;
julia> readdlm("delim_file.txt", ',')
4×2 Matrix{Float64}:
1.0 1.1
2.0 2.2
3.0 3.3
4.0 4.4
julia> z = ["a"; "b"; "c"; "d"];
julia> open("delim_file.txt", "w") do io
writedlm(io, [x z], ',')
end;
julia> readdlm("delim_file.txt", ',')
4×2 Matrix{Any}:
1 "a"
2 "b"
3 "c"
4 "d"
julia> rm("delim_file.txt")
DelimitedFiles.readdlm
— Methodreaddlm(source, T::Type; options...)
يُفترض أن تكون الأعمدة مفصولة بواسطة مسافة واحدة أو أكثر. يتم اعتبار محدد نهاية السطر كـ \n
.
أمثلة
julia> using DelimitedFiles
julia> x = [1; 2; 3; 4];
julia> y = [5; 6; 7; 8];
julia> open("delim_file.txt", "w") do io
writedlm(io, [x y])
end;
julia> readdlm("delim_file.txt", Int64)
4×2 Matrix{Int64}:
1 5
2 6
3 7
4 8
julia> readdlm("delim_file.txt", Float64)
4×2 Matrix{Float64}:
1.0 5.0
2.0 6.0
3.0 7.0
4.0 8.0
julia> rm("delim_file.txt")
DelimitedFiles.readdlm
— Methodreaddlm(source; options...)
يُفترض أن تكون الأعمدة مفصولة بواسطة مسافة واحدة أو أكثر. يتم اعتبار محدد نهاية السطر كـ \n
. إذا كانت جميع البيانات رقمية، ستكون النتيجة مصفوفة رقمية. إذا لم يكن من الممكن تحليل بعض العناصر كأرقام، يتم إرجاع مصفوفة غير متجانسة من الأرقام والسلاسل النصية.
أمثلة
julia> using DelimitedFiles
julia> x = [1; 2; 3; 4];
julia> y = ["a"; "b"; "c"; "d"];
julia> open("delim_file.txt", "w") do io
writedlm(io, [x y])
end;
julia> readdlm("delim_file.txt")
4×2 Matrix{Any}:
1 "a"
2 "b"
3 "c"
4 "d"
julia> rm("delim_file.txt")
DelimitedFiles.writedlm
— Functionwritedlm(f, A, delim='\t'; opts)
اكتب A
(وهي متجه أو مصفوفة أو مجموعة قابلة للتكرار من الصفوف القابلة للتكرار) كنص إلى f
(إما سلسلة اسم ملف أو تدفق IO
) باستخدام الفاصل المحدد delim
(الذي يكون افتراضيًا علامة تبويب، ولكن يمكن أن يكون أي كائن جولي قابل للطباعة، عادةً Char
أو AbstractString
).
على سبيل المثال، يمكن كتابة متجهين x
و y
من نفس الطول كعمودين من نص مفصول بعلامات تبويب إلى f
إما عن طريق writedlm(f, [x y])
أو عن طريق writedlm(f, zip(x, y))
.
أمثلة
julia> using DelimitedFiles
julia> x = [1; 2; 3; 4];
julia> y = [5; 6; 7; 8];
julia> open("delim_file.txt", "w") do io
writedlm(io, [x y])
end
julia> readdlm("delim_file.txt", '\t', Int, '\n')
4×2 Matrix{Int64}:
1 5
2 6
3 7
4 8
julia> rm("delim_file.txt")