簡體   English   中英

在 Julia 中存儲 For 循環的結果

[英]Store Results of an For Loop in Julia

我對 julia 完全陌生,但我遇到了存儲循環結果的問題。 我有幾個 UTF-16 的 csv 文件,但我需要將它們編碼為 UTF-8。 因此我想我會把它們循環起來,然后我想把它們放在一個 DataFrame

這是我到目前為止的方法......

filelist = readdir("C:\\Users\\cd\\Documents\\Data\\Generation")

for i in filelist
    encoded_csv = open("C:\\Users\\cd\\Documents\\Data\\Generation\\"*i,enc"UTF-16")  
end

我會很感激我能得到的任何幫助:)非常感謝!

我建議使用 CSV.jl package 來讀取 CSV 文件。 一般語法應該是:

using CSV, DataFrames, StringEncodings
df = DataFrame()
for i in filelist
    append!(df, CSV.File(open(read, i, enc"UTF-16")))
end

關於 UTF-16 編碼,這里解釋:https://csv.juliadata.org/stable/#Non-UTF-8-character-encodings

編輯:添加了直接讀取 UTF-16 編碼文件的語法。

文件的編碼和它是否是 CSV 是兩個獨立的問題。

關於轉換編碼,最好的方法是使用StringEncodings package。 在這里,我只是逐行執行:

using StringEncodings
f = open("u16.txt", enc"UTF-16", "r")
fout  = open("u8.txt", enc"UTF-8", "w")
for l in eachline(f)
     println(fout,l)
end
close(fout)
close(f)

請注意,如果需要,可以將此類文件 stream 直接傳遞給CSV.File 只需使用打開的 stream 即可:

CSV.File(f) |> DataFrame

謝謝你的幫助,但我想我問我的問題是不恰當的。 我確實使用 CSV package 來讀取 csv 文件。 這適用於使用 UTF-8 編碼的 csv 文件。 為了更改編碼,我只需使用帶有提到的 function 的 StringEncodings。

如果我只想編碼一個 csv 文件,這可以正常工作。 但是我想對文件夾中的所有 csv 文件使用這種方法。 因此我考慮循環遍歷這些文件。 不幸的是,這出錯了,因為它將所有內容都存儲在“encoded_csv”中。 我想對每個 csv 文件進行編碼並將它們存儲在一個單獨的變量中,因此我可以在之后通過 CSV 加載它們。

再次感謝並為給您帶來的不便深表歉意

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM