在python中将数据导出到CSV

时间:2020-05-08 22:26:50

标签: python csv

我正在尝试将某些数据导出到csv,并且我正在尝试这段代码


import csv

nms = [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12]]

f = open('numbers2.csv', 'w')

with f:

    writer = csv.writer(f)

    for row in nms:
        writer.writerow(row)

但它返回此错误:

  File "C:/Users/ASUS/Desktop/csv.py", line 3, in <module>
    import csv
  File "C:/Users/ASUS/Desktop\csv.py", line 11, in <module>
    writer = csv.writer(f)
AttributeError: module 'csv' has no attribute 'writer' ```
Any help???

2 个答案:

答案 0 :(得分:1)

当模块缺少定义明确的变量时,最好询问您是否确实导入了正确的模块。您可以print(csv.__file__)来查看您是否做对了。

Python有一个规则,它将规则的目录添加到模块搜索路径中,以便它可以找到项目中可能使用的其他模块。缺点是,如果您的模块名称与已安装的模块名称相同,则本地模块获胜。

从回溯中可以很容易地看到问题。您的脚本为File "C:/Users/ASUS/Desktop/csv.py"。由于您将脚本命名为“ csv.py”,因此已导入它而不是标准模块。解决方案是将您的.py文件命名为其他名称。

答案 1 :(得分:0)

我已经使用python 3.8.2运行了您的代码,一切正常。如果您使用的是旧的python版本,请尝试安装最新的here.

版本

要检查您的python版本,请输入:

dat <- read.table(header=FALSE, stringsAsFactors=FALSE, text="
person_1  39257
person_2  2015/2/20
person_3  NA")

conv_dates <- function(dates, origin = "1900-01-01") {
  out <- Sys.Date()[rep(NA, length(dates))]
  notna0 <- !is.na(dates)
  allnum <- notna0 & grepl("^[.0-9]+$", dates)
  if (any(allnum)) out[allnum] <- suppressWarnings(as.Date(as.numeric(dates[allnum]), origin = origin))
  fmts <- c("%Y/%m/%d", "%d/%m/%Y", "%m/%d/%Y")
  for (fmt in fmts) {
    isna <- notna0 & is.na(out)
    if (!any(isna)) break
    out[isna] <- as.Date(dates[isna], format = fmt)
  }
  out
}

str(conv_dates(dat$V2))
#  Date[1:3], format: "2007-06-26" "2015-02-20" NA