在 python 中使用 strip() 或 rstrip() 删除字符串末尾的 space

Remove space at the end of a string using strip() or rstrip() in python

我的目标是读取一个 csv 文件,然后打印 10 个项目,其中一个 Space。以下是执行此操作的任务:

  1. 如果字符串有多个单词,则在其周围添加 "Double quotes"。

我面临的问题是,如果它是单个字符串但末尾带有白色 space,我应该将其删除。

我在 python 中尝试了 strip 和 rstrip,但似乎没有用。

以下是它的代码:

with open(accidents_csv, mode='r', encoding="utf-8") as csv_file:
    csv_reader = csv.reader(csv_file, delimiter=",")
    count = 0
    for row in csv_reader:
        if count <=10:
            new_row = [beautify_columns(item) for item in row]
            print(' '.join(new_row))
            count +=1
def beautify_columns(col):
    col.strip()
    if(' ' in col):
        col = f'"{col}"'
    return col

下图显示了代码的当前行为,没有删除尾随的 space。

请教我如何删除字符串末尾的 spaces

你必须给strip()的结果赋值,即

col = col.strip()

唯一需要注意的是 strip() 将删除字符串开头和结尾的白色space(即不仅仅是 space 个字符)。

部分不相关,但 csv.writer 本身可以满足您的其他要求,因为它会自动引用包含分隔符的字段:

with open(accidents_csv, mode='r', encoding="utf-8") as csv_file:
    csv_reader = csv.reader(csv_file, delimiter=",")
    csv_writer = csv.writer(sys.stdout, delimiter=" ")
    for count, row in enumerate(csv_reader):
        new_row = [item.strip() for item in row]
        csv_writer.writerow(new_row)
        if count >= 9: break

正如@barny 所说,strip() 将删除所有白色space 字符,包括"\r""\t"。如果您只想删除 space 个字符,请使用 strip(' ')