所以我已经看到这样做是其他问题在这里问,但我仍然有点困惑。过去几天我一直在学习python3,并认为我会开始一个项目的工作,以便让我的手变得肮脏。我需要遍历一定数量的CSV文件并对这些文件进行编辑。我在进入一个特定的列时也遇到了麻烦,并且一般情况下也出现了python中的循环。我习惯于约定(int i = 0;我<表达式; i ++),但在python中有点不同。这是我的代码到目前为止,我会解释我的问题在哪里。Python通过CSV文件和它们的列循环
import os
import csv
pathName = os.getcwd()
numFiles = []
fileNames = os.listdir(pathName)
for fileNames in fileNames:
if fileNames.endswith(".csv"):
numFiles.append(fileNames)
for i in numFiles:
file = open(os.path.join(pathName, i), "rU")
reader = csv.reader(file, delimiter=',')
for column in reader:
print(column[4])
我的问题就落在这条线:
for column in reader:
print(column[4])
所以在文档它说,一列是可变的,读者就是我通过循环。但是当我写4我得到这个错误:
IndexError: list index out of range
这是什么意思?如果我写入0而不是4,则会打印出每个CSV文件的第0列单元格0中的所有值。我基本上需要它通过每个CSV文件的第一行,找到一个特定的值,然后遍历整个列。提前致谢!
这意味着在您的某个文件的某处没有第5列。 –
'阅读器列'?这不是'在阅读器中排'吗?不要忘记使用'with'来确保文件在进程结束后关闭:'open(os.path.join(pathName,i),“rU”)作为文件:' – jferard
太棒了,感谢所有人答案! @azalea为什么是5?我试图理解这个for循环是如何工作的。 – humbleCoder