首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSV文件未正确阅读

CSV文件未正确阅读
EN

Stack Overflow用户
提问于 2022-06-14 16:49:02
回答 1查看 64关注 0票数 1

我试图根据Excel文档为我的海龟添加变量。excel文档只有两个列,有19个随机数。它被保存为CSV。I‘我收到一个错误,上面写着:期望一个文字值。(第19行,字符2)龟17运行文件时出错

但是,所有的值都是文档中的数字。这是密码

代码语言:javascript
复制
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

我还尝试了另一个用户在这里发布的代码,但是得到了相同的错误。这部分替换了负载数据。也不起作用。

代码语言:javascript
复制
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加载到海龟变量中最有效的方法。

EN

回答 1

Stack Overflow用户

发布于 2022-06-14 20:49:11

问题可能是您的csv文件确实是逗号分隔的,而不是空格分隔的。file-read希望常量用空格分隔,逗号不计为空白。如果以空格作为分隔符保存Excel文件,或者使用文本编辑器将逗号更改为csv文件中的空格,则代码应该可以工作。

但是,如果要加载csv extension,最好还是使用它。下面的代码使用一个命令将整个csv文件读入turtle-data,作为列表列表,然后setup-turtles创建海龟并使用turtle-data填充它们的incomehousingtype值。csv:from-file对逗号非常满意。(请注意,您不需要file-openfile-closecsv:from-file,因为它为您打开和关闭。)

代码语言:javascript
复制
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
    ]
  ]
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72620689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档