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

python rstrip usage within loop while reading csv file

我有一个 CSV 文件,我在其中循环并匹配我的数据库以根据这些匹配项获取结果。

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

这是我的代码:

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 文件末尾为空 space:

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

您可以尝试以下方法:

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 参数可能就足够了。这虽然不会删除下一个定界符之前的尾随空格。当与 csv.reader().

一起使用时,newline='' 也应用于 Python 3.x

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

lines = []

with open('input.csv', encoding='utf-8') as f_input:
    for line in f_input:
        lines.append(line.strip())

print(lines)

这会给你 lines 包含:

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