如何从CSV文件导入数据并逐行转换,以便我可以在我的程序中使用它?我希望它是一个字符串,但我不断收到错误消息,它仍然是列表或列表列表。
我正在尝试复制Netlogo用户手册中给出的示例,以便每个刻度读取一行文件(见下文)。我创建了一个简单的例子。
extensions [CSV]
globals [date]
to setup
clear-all
file-close-all
file-open "S&PDate.csv"
set date current-date
reset-ticks
end
to go
if file-at-end? [stop]
set date current-date
tick
end
to-report current-date
file-open "S&PDate.csv"
let result csv:from-row file-read-line
while [ not file-at-end? ] [
let row csv:from-row file-read-line
set result (map result row)
]
file-close
report result
end
答案 0 :(得分:2)
我的想法是一次性导入CSV数据作为列表,然后通过刻度数(即逐行)从列表中提取值。
extensions [csv]
globals [data variable]
to setup
file-close-all
file-open "S&PDate.csv"
;; read the data all at once by using csv:from-file
set data csv:from-file "S&PDate.csv"
reset-ticks
end
to go
if file-at-end? [stop]
;;extract value from the list, using item 0 to remove the list, and just keep the value
set variable item 0 item ticks data
tick
if ticks = length data [stop]
show variable
end
希望它有所帮助。如果您需要进一步澄清,请与我们联系。