所以我已經看到這樣做是其他問題在這裏問,但我仍然有點困惑。過去幾天我一直在學習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