Удалите пробел в конце строки, используя strip () или rstrip () в python - PullRequest
0 голосов
/ 28 февраля 2019

Моя цель - прочитать CSV-файл, а затем распечатать 10 элементов с одним пробелом между ними.Ниже приведены задачи для этого:

  1. Если в строке более одного слова, а затем добавить «Двойные кавычки» вокруг нее.

Проблема, с которой я сталкиваюсь, заключается в том, чтоесли это одна строка, но с пробелом в конце, я должен удалить ее.

Я пробовал strip и rstrip в python, но, похоже, не работает.

Ниже приведенокод для него:

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

На следующем рисунке показано текущее поведение кода без удаления завершающих пробелов.The image shows the current behavior of the code without removing the trailing spaces.

Пожалуйста, посоветуйте мне, как убрать пробелы в конце строки

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Частично не связан, но 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() удалит все пробелысимволы, включая "\r" или "\t".Используйте strip(' '), если вы хотите удалить только пробелы.

0 голосов
/ 28 февраля 2019

Вы должны назначить результат выполнения функции strip (), т.е.

col = col.strip()

Единственное, на что следует обратить внимание, это то, что strip() удалит пробелы (т.е. не только пробелы) в начале, а также в концестроки.

...