读取csv文件时循环内部的python rstrip用法

时间:2018-04-18 20:20:07

标签: python django csv strip

我有一个CSV文件,我循环并与我的数据库匹配,以便根据这些匹配获得结果。

在文本末尾有空格的情况下遇到了问题。所以我做了我的研究,发现我需要添加rstrip函数来删除文本末尾的空格。

这是我的代码:

with open(path, encoding='utf-8') as f:
    data = csv.reader(f, delimiter='|')
    for row in data:
        line = row[0]
        cleanline = line.rstrip()
        lines.append(cleanline)
        query = line

代码无效。我也尝试了/sstrip之类的字符串,并且还替换了函数,但没有任何工作。可能是什么原因?我做错了什么?

CSV文件末尾有空格:

Sistem en az 23.8  inç boyutlarında olmalıdır. 
1 adet HDMI port olmalıdır. 

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

import csv

path = 'input.csv'
lines = []

with open(path, newline='', encoding='utf-8') as f:
    data = csv.reader(f, delimiter='|', skipinitialspace=True)

    for row in data:
        lines.append([c.strip() for c in row])

print(lines)        

这将使用strip()命令从一行中的每个单元格中删除所有前导和尾随空格。根据您的数据,可能只需添加额外的skipinitialspace=True参数即可。这虽然不会在下一个分隔符之前删除尾随空格。与newline=''一起使用时,{3.}}也应在Python 3.x中使用。

您提供的文件只包含文本行,因此您可以按如下方式阅读:

csv.reader()

这会给你lines = [] with open('input.csv', encoding='utf-8') as f_input: for line in f_input: lines.append(line.strip()) print(lines) 包含:

lines