我试着读一个excel文件,提取一些数据,然后把它写成csv。这对我来说很新鲜,我在某个地方搞砸了:我总是得到一个空的csv。我肯定我错过了一些非常基本的东西,但是如果我能看到的话,那就太糟糕了。代码如下: ``` 导入xlrd 导入操作系统 导入csv 从zipfile导入zipfile 导入日期时间
datafile = "./2013_ERCOT_Hourly_Load_Data.xls"
outfile = "./2013_Max_Loads.csv"
def parse_file(datafile):
workbook = xlrd.open_workbook(datafile)
sheet = workbook.sheet_by_index(0)
data = None
outputlist = []
for col in range(1, sheet.ncols):
cv = sheet.col_values(col, start_rowx=1, end_rowx=None)
header = sheet.cell_value(0,col)
maxval = max(cv)
maxpos = cv.index(maxval) + 1
maxtime = sheet.cell_value(maxpos, 0)
realtime = xlrd.xldate_as_tuple(maxtime, 0)
year = realtime[0]
month = realtime[1]
day = realtime[2]
hour = realtime[3]
data = [
'Region:', header,
'Year:', year,
'Month:', month,
'Day:', day,
'Hour:', hour,
maxpos,
maxtime,
realtime,
maxval,
]
path = "./2013_Max_Loads.csv"
return outputlist
def save_file(data, filename):
with open(filename, "wb") as f:
writer = csv.writer(f, delimiter='|')
for line in data:
writer.writerow(line)
parse_file(datafile)
save_file(parse_file(datafile),"2013_Max_Loads.csv")
您声明了
outfile
,但没有使用它您没有传递要保存文件的目录(路径)。在
我也认为打两次电话
parse_file
可能会把你搞砸。只需传递文件名并从save_file
函数中调用它。在我还发现您返回
output list
作为空白列表。在所以在这里,试试这个。我将假定您的
xlrd
命令是正确的,因为我没有亲自使用过该模块。在尝试替换下面新的
^{pr2}$save_file()
:另外,将变量(您使用的是
writer
)更改为类似于wr
的内容。您真的希望避免与使用与所调用的方法、函数或类同名的变量发生任何可能的冲突。在相关问题 更多 >
编程相关推荐