我正在尝试循环我创建的输出文件中的行,该文件如下所示:
2020-03-19, 22.0
2020-03-20, 6.0
2020-03-21, 5.0
然后创建并打印一个列表,其中第2列为数字。
这只是我的主要功能,也是我遇到麻烦的功能:
def main():
for file in FILE_PATH_INPUT:
fWriteOutputFile(file)
print(fReadOutputFile(FILE_PATH_OUTPUT))
```
def fReadInputFile(pFile):
casesList = []
with open(pFile, 'r') as fi:
lines = fi.readlines()
for line in lines:
line = line.rstrip().split(',')
casesList.append(str(line[1]))
return casesList
```
**What I'm expecting:
[66, 6, 5]
what I'm getting:
casesList.append(str(line[1]))
IndexError: list index out of range**
问题出在这段代码中:
line = line.rstrip().split(',')
caseslist = str(line[1]) + ','
casesList.append(caseslist)
在第二行中,"line"仍然包含文本(它是一个字符串(,您必须转换为integer
正确的方法是:
line = line.rstrip().split(',')
casesList.append( int( line[1])
此外;file.close(("位于"return"之后。因此,"关闭"永远不会执行。
如果你只想打印列表,你不需要手动添加"quot;每个元素。相反,您可以用以下方式编写fReadOutputFile:
def fReadOutputFile(pFile):
casesList = []
with open(pFile, 'r') as fi:
lines = fi.readlines()
for line in lines:
line = line.rstrip().split(',')
casesList.append(str(line[1]))
return casesList