2016-03-15 214 views

回答

3

您需要在每一列使用strip()如下:

import csv 

with open('input.csv', 'rb') as f_input:  
    for row in csv.reader(f_input): 
     row = [col.strip() for col in row] 

     print row 

這將打印:

['1', 'A', 'a'] 
['2', 'B', 'b'] 
['99', 'ZZ', 'zz']  

csv庫確實提供了一個名爲skipinitialspace=True的選項,但這隻會處理領先的空間。

+0

Upvote爲大多數Pythonic和使用正確的軟件包。 – Joe

1

對於一個給定的字符串field,可以清除使用field.strip()尾隨空白。 rstrip()lstrip剝離左右空白區。

因此,導入文件:

with open("file.csv","r") as csv_file: 
    csv_data = csv_file.read() 

lines = csv_data.split("\n") 
for line in lines: 
    line = line.split(",") #Or whatever delimiter you have 



    #The stripped line looks like this: 
    for field in line: 
     print(field.strip()) 
+0

不能將.strip()直接到列表中。你必須申請字符串。 – Joe

+0

啊,是的,錯字。糾正。 –