我试图根据Excel文档为我的海龟添加变量。excel文档只有两个列,有19个随机数。它被保存为CSV。I‘我收到一个错误,上面写着:期望一个文字值。(第19行,字符2)龟17运行文件时出错
但是,所有的值都是文档中的数字。这是密码
extensions [csv]
globals [ turtle-data ]
turtles-own [ awareness income housingtype adopt ]
to setup
clear-all
reset-ticks
create-turtles 20
ask turtles [
set color white
]
ask turtles [
setxy random-xcor random-ycor
]
; load-turtle-data
; setup-turtles
load-data
end
to load-data
file-open "Ejemplocsv.csv"
while [not file-at-end?] [
ask turtles [
set income file-read
set housingtype file-read
set size 1.5]
ask turtles [setxy random-xcor random-ycor]]
file-close
show "file read"
end我还尝试了另一个用户在这里发布的代码,但是得到了相同的错误。这部分替换了负载数据。也不起作用。
to load-turtle-data
ifelse ( file-exists? "Ejemplocsv.csv" ) [
set turtle-data []
file-open "Ejemplocsv.csv"
while [ not file-at-end? ][
set turtle-data sentence turtle-data (list (list file-read file-read))
]
user-message "File loading complete!"
file-close
]
[
user-message "There is no input-data.txt file in current directory!"
]
end
to setup-turtles
foreach turtle-data [ iter ->
crt 1 [
set income item 0 iter
set housingtype item 1 iter
]
]
end我只想知道将csv数据或excel加载到海龟变量中最有效的方法。
发布于 2022-06-14 20:49:11
问题可能是您的csv文件确实是逗号分隔的,而不是空格分隔的。file-read希望常量用空格分隔,逗号不计为空白。如果以空格作为分隔符保存Excel文件,或者使用文本编辑器将逗号更改为csv文件中的空格,则代码应该可以工作。
但是,如果要加载csv extension,最好还是使用它。下面的代码使用一个命令将整个csv文件读入turtle-data,作为列表列表,然后setup-turtles创建海龟并使用turtle-data填充它们的income和housingtype值。csv:from-file对逗号非常满意。(请注意,您不需要file-open或file-close与csv:from-file,因为它为您打开和关闭。)
extensions [csv]
globals [ turtle-data ]
turtles-own [ awareness income housingtype adopt ]
to load-turtle-data
ifelse ( file-exists? "Ejemplocsv.csv" ) [
; file-open "Ejemplocsv.csv"
set turtle-data csv:from-file "Ejemplocsv.csv"
user-message "File loading complete!"
; file-close
]
[
user-message "There is no input-data.txt file in current directory!"
]
end
to setup-turtles
foreach turtle-data [ iter ->
crt 1 [
set income item 0 iter
set housingtype item 1 iter
]
]
endhttps://stackoverflow.com/questions/72620689
复制相似问题