在 python 中使用 strip() 或 rstrip() 删除字符串末尾的 space
Remove space at the end of a string using strip() or rstrip() in python
我的目标是读取一个 csv 文件,然后打印 10 个项目,其中一个 Space。以下是执行此操作的任务:
- 如果字符串有多个单词,则在其周围添加 "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(' ')
。
我的目标是读取一个 csv 文件,然后打印 10 个项目,其中一个 Space。以下是执行此操作的任务:
- 如果字符串有多个单词,则在其周围添加 "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(' ')
。