我试图在Python中运行以下代码,并收到错误:
csv.Error: sequence expected
Run Code Online (Sandbox Code Playgroud)
有谁知道我的代码有什么问题?(该文件先前已导入程序).
import csv
file = open('/home/btoms/Desktop/TomsBen/2000/01/01/20000101acme.mts', 'r')
variables = []
file.readline() #Skip a line
file.readline()
file.readline() #Skip another line
for line in file:
tmp = line.split()
tmp_STID = str(tmp[0])
tmp_T = float(tmp[4])
tmp_RH = float(tmp[3])
tmp_Times = float(tmp[2])
variables.append(tmp_STID)
variables.append(tmp_Times)
variables.append(tmp_T)
variables.append(tmp_RH)
if tmp_T < 6.2 and tmp_RH > 60.0:
dataCSV = open('ProgramCheck.csv', 'w')
writer = csv.writer(dataCSV, dialect='excel')
writer.writerow(['Station ID', 'Time', 'Temperature' , 'Relative Humidity'])
for values in variables:
writer.writerow(values)
else:
pass
file.close()
Run Code Online (Sandbox Code Playgroud)
错误出现为:
Traceback (most recent call last):
File "checkcsv.py", line 30, in <module>
writer.writerow(values)
_csv.Error: sequence expected
Run Code Online (Sandbox Code Playgroud)
Mik*_*one 16
writer.writerow期望值的序列(元组或列表)写入单行,该行中每列一个值.你给它的是一个单一的价值.您的代码应该看起来更像:
writer.writerow([tmp_STID, tmp_Times, tmp_T, tmp_RH])
Run Code Online (Sandbox Code Playgroud)
并且在我看来,大多数代码应该是一个大循环,每个站运行一次(因此每行一次).
dataCSV = open('ProgramCheck.csv', 'w')
writer = csv.writer(dataCSV, dialect='excel')
writer.writerow(['Station ID', 'Time', 'Temperature' , 'Relative Humidity'])
for line in inputData:
tmp = line.split()
tmp_STID = str(tmp[0])
tmp_T = float(tmp[4])
tmp_RH = float(tmp[3])
tmp_Times = float(tmp[2])
if tmp_T < 6.2 and tmp_RH > 60.0:
writer.writerow([tmp_STID, tmp_Times, tmp_T, tmp_RH])
file.close()
Run Code Online (Sandbox Code Playgroud)
现在看起来你只是想写一个字符串
\n\n writer.writerow(variables)\nRun Code Online (Sandbox Code Playgroud)\n\n将写入整行
\n\n tmp_STID = str(tmp[0])\n\xc2\xa0 \xc2\xa0 tmp_T = float(tmp[4])\xc2\xa0\n\xc2\xa0 \xc2\xa0 tmp_RH = float(tmp[3])\n\xc2\xa0 \xc2\xa0 tmp_Times = float(tmp[2])\nRun Code Online (Sandbox Code Playgroud)\n\n检查变量列表
\n\n[tmp_STID, tmp_T, tmp_RH, tmp_Time]\nRun Code Online (Sandbox Code Playgroud)\n\n看起来您正在为每次迭代打开一个新的 csv 文件?应该脱离循环吗?
\n| 归档时间: |
|
| 查看次数: |
53852 次 |
| 最近记录: |