我正在尝试将某些数据导出到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???
答案 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