【问题标题】:How to add rows to a .csv file如何将行添加到 .csv 文件
【发布时间】:2016-05-31 20:21:44
【问题描述】:

我需要将行附加到 .csv 文件。每行包含一个整数向量。要添加的向量是即时生成的,我无法提前知道要添加多少行。
我尝试执行以下操作,但它似乎没有创建 .csv 文件,也没有在单独的行中包含每个元素。

s = open( "testfile.txt",  "a")

for i in 1:5

  x = rand(Int8, 10)
  writecsv( s, x)

end

close(s)

感谢任何帮助!

【问题讨论】:

    标签: julia


    【解决方案1】:

    所以,您知道如何使用以下方法创建或覆盖 csv 文件:

    x = [1 2 ; 3 4 ; 5 6]
    filePath = "/someAbsolutePath/temp1.csv"
    writecsv(filePath, x)
    

    当你想追加一个新行(或一次点击多行)时,你也可以使用writecsv,但首先你需要以追加模式显式打开文件,然后将生成的文件标识符设置为writecsv 的第一个参数。继续上面的例子:

    fid1 = open(filePath, "a")
    writecsv(fid1, [7 8])
    close(fid1)
    

    我认为writecsv 不会在第一个输入是文件标识符时自动close 文件,所以最后的close 语句非常重要。或者,您可以使用 cmets 中@ShaoWeiTeo 提出的版本自动获得close

    【讨论】:

    • 我们也可以使用open(f::Function, command, mode::AbstractString="r", stdio=DevNull)的版本,在写入发生后自动关闭连接。我更喜欢手动关闭,并且是一种更儒略的方式来打开我认为的文件......
    • 感谢 Colin 和 ShaoWei 的回答。这就是我要找的。非常感激!我现在还了解到 writecsv() 使用 UNIX 哲学来换行,也在我的 Windows 系统上。
    猜你喜欢
    • 2022-01-23
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 2019-07-25
    • 2012-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多