Go读取CSV文件,其内容被转换成字符串数组

  1. package main
  2.  
  3. import (
  4. "encoding/csv"
  5. "fmt"
  6. "io/ioutil"
  7. "log"
  8. "strings"
  9. "io"
  10. )
  11.  
  12. //读取CSV前两列到map中
  13. func CSVToMap(filePath string) map[string]string{
  14. dat, err := ioutil.ReadFile(filePath)
  15. if err != nil {
  16. log.Fatal(err)
  17. }
  18. r := csv.NewReader(strings.NewReader(string(dat[:])))
  19.  
  20. record, err := r.ReadAll() //record为二维数组
  21. if err != nil {
  22. panic("读取文件失败")
  23. }
  24. //fmt.Println(record)
  25.  
  26. if r.FieldsPerRecord < {
  27. panic("CSV不足两列")
  28. }
  29.  
  30. mapCsv := make(map[string]string)
  31. //以csv文件第一列为KEY,第二列为value,转换为map;重复时后者覆盖前者
  32. for _, val := range record {
  33. mapCsv[val[]] = val[]
  34. }
  35. //fmt.Println(mapCsv)
  36. return mapCsv
  37. }
  38.  
  39. //输出CVS文件的每一行
  40. func readCSV(filePath string){
  41. dat, err := ioutil.ReadFile(filePath)
  42. if err != nil {
  43. log.Fatal(err)
  44. }
  45. r := csv.NewReader(strings.NewReader(string(dat[:])))
  46.  
  47. for {
  48. record, err := r.Read()
  49.  
  50. if err == io.EOF {
  51. break
  52. }
  53. if err != nil {
  54. log.Fatal(err)
  55. }
  56. for i:= ;i<r.FieldsPerRecord;i++ {
  57. fmt.Println(i,record[i])
  58. }
  59. }
  60. }
  61.  
  62. func main() {
  63. filePath := "/usr/local/automng/src/goapp/src/tools/cmd2.csv"
  64. readCSV(filePath)
  65. mapCsv := CSVToMap(filePath)
  66. df := mapCsv["common"]
  67. fmt.Println(df)
  68. }

2.6 Go 读取CSV的更多相关文章

  1. sparkR读取csv文件

    sparkR读取csv文件 The general method for creating SparkDataFrames from data sources is read.df. This met ...

  2. C# 读取 CSV 文件

    最近做一个C#项目要导入CSV文件中的数据到Oracle中,使用Aspose.Cells读取中文字段标题却乱码,表的最后多出几行null记录,而且不是免费的,后来找到了NPOI,顾名思义,就是POI的 ...

  3. PHP读取CSV数据写入数据库

    /*读取csv文件*/ public function testCsv(){ $fileName = "tel.csv"; $fp=fopen($fileName,"r& ...

  4. VB6.0 读取CSV文件

    最近做了一个Upload文件的需求,文件的格式为CSV,读取文件的方法整理了一下,如下: 1.先写了一个读取CSV文件的Function: '读取CSV文件 '假设传入的参数strFile=C:\Do ...

  5. php读取csv文件,在linux上出现中文读取不到的情况 解决方法

    今,php读取csv文件,在linux上出现中文读取不到的情况,google,后找到解决办法<?phpsetlocale(LC_ALL, 'zh_CN');$row = 1;$handle = ...

  6. 内容写到 csv 格式的文件中 及 读取 csv 格式的文件内容

    <?php/*把内容写到 csv 格式的文件中 基本思路是:1.用 $fp = fopen("filename", 'mode')打开一个csv文件,可以是打开时才建立的2. ...

  7. Unity 读取CSV与Excel

    前几天看到我们在游戏中需要动态加载某些角色的游戏策划值,关于这个问题怎么解决呢?其实办法很多种,归根到底,就是数据的读取.我们可以想到的存储数据的载体有很多.例如:txt,xml,csv,excel. ...

  8. 使用univocity-parsers创建和读取csv文件

    import com.univocity.parsers.csv.CsvFormat;import com.univocity.parsers.csv.CsvParser;import com.uni ...

  9. PHP读取CSV大文件导入数据库的示例

    对于数百万条数据量的CSV文件,文件大小可能达到数百M,如果简单读取的话很可能出现超时或者卡死的现象. 为了成功将CSV文件里的数据导入数据库,分批处理是非常必要的. 下面这个函数是读取CSV文件中指 ...

  10. Python 读取csv文件到excel

    朋友问我如何通过python把csv格式的文件另存为xls文件,自己想了想通过读取csv文件然后再保存到xls文件中即可,也许还有其他简单的方法,但这里也为了练习python语法及其他知识,所以采用了 ...

随机推荐

  1. 执行“hdfs dfs -ls”时报ConnectException

    原因可能是指定的端口号不对,该端口号由hdfs-site.xml中的属性"dfs.namenode.rpc-address"指定,即为NameNode的RPC服务端口号. 文件上传 ...

  2. 自己(转)String、StringBuffer与StringBuilder之间区别

    String.StringBuffer与StringBuilder之间区别   最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringB ...

  3. 设计模式12---享元模式(Flyweight Pattern)

    享元模式 定义:共享元对象,运用共享技术有效地支持大量细粒度对象的复用.如果在一个系统中存在多个相同的对象,那么只需要共享一份对象的拷贝,而不必为每一次使用创建新的对象. 享元模式是为数不多的.只为提 ...

  4. Strict Weak Ordering

    Description A Strict Weak Ordering is a Binary Predicate that compares two objects, returning true i ...

  5. thinkjs系统服务启动

  6. Postgres数据库在Linux中优化

    I/O 优化1 打开 noatime nodirtime,async 方法: 修改 /etc/fstab stat 命令查看 2 调整预读方法: 查看 sudo blockdev --getra /d ...

  7. DATATable转为json

    public static string DataTableToJson(DataTable dt) { StringBuilder jsonBuilder = new StringBuilder() ...

  8. .Net Core配置与自动更新

    .Net Core 将之前Web.Config中的配置迁移到了appsettings.json文件中,并使用ConfigurationBuilder来读取这个配置文件.并可设置在配置文件变化以后,自动 ...

  9. selenium爬取网易云

    from selenium import webdriver from selenium.webdriver import ActionChains from selenium.webdriver.c ...

  10. SAH Benchmarks Of Natural History Museum Scene

    method                                                                                               ...