Python:从一串数字中删除随机空格[重复]

Posted

技术标签:

【中文标题】Python:从一串数字中删除随机空格[重复]【英文标题】:Python: Removing random whitespace from a string of numbers [duplicate] 【发布时间】:2016-01-26 02:17:33 【问题描述】:

尝试了不同数量的组合,无济于事。

基本上这是我拥有的一串数字:

20101002  100224   1    1044      45508  1001  1002  1003  1004  1005  1006

我追求的输出:

20101002 100224 1 1044 45508 1001 1002 1003 1004 1005 1006

基本上,最后一个数字之前和之后的所有空格都必须被修剪。最重要的是,数字之间应该只有一个空格。

我应该补充一点,我目前拥有的代码如下,只处理字符串开头和结尾的空格:

row = line.strip().split(' ')

非常感谢任何帮助,谢谢!

【问题讨论】:

你有什么尝试吗? 使用 regexre.sub() 方法 【参考方案1】:

这个

s = '20101002  100224   1    1044      45508  1001  1002  1003  1004  1005  1006'
new_s = ' '.join(s.split())
print(new_s)

生产

20101002 100224 1 1044 45508 1001 1002 1003 1004 1005 1006

基本上涉及两个步骤:

首先我们用s.split()将字符串拆分成单词,返回这个列表

['20101002', '100224', '1', '1044', '45508', '1001', '1002', '1003', '1004', '1005', '1006']

然后我们将列表传递给' '.join,它使用它们之间的空格字符连接列表的所有元素

【讨论】:

我得到 ` , , , ,2,0,1,0,1,0,0,2, , ,1,0,0,2,2,4, , , ,1, , , , ,1,0,4,4, , , , , , ,4,5,5,0,8, , ,1,0,0,1, , ,1,0,0,2, , , 1,0,0,3, , ,1,0,0,4, , ,1,0,0,5, , ,1,0,0,6," "` 返回。可能是因为我使用的是 Python 3? 我已经在 python 3.4.3 上尝试过代码,它工作正常。复制粘贴 当我在终端上打印时它看起来不错,但是当我将它导出到 csv 时它会改变格式:/ with open(bad_csv_file, 'w') as myfile: wr = csv.writer(myfile) for line in bad_csv: row = ' '.join(line.split()) print(row) wr.writerow(row) 任何想法为什么? 可能是因为 for 循环正在迭代 bad_csv 而不是 myfile fname = "track_param_stoch.txt" bad_csv_file = 'bad_hist_csv.csv' bad_csv = [] with open(fname) as f: lines = f.readlines() for line in lines: good_csv.append(line) if pattern.match(line) else bad_csv.append(line) 它正在正确迭代,猜测这是 csv 问题的输出,而不是带空格的问题:/【参考方案2】:

默认情况下,Python 的 str.split 方法会在空白处拆分。

a = "20101002  100224   1    1044      45508  1001  1002  1003  1004  1005  1006"

" ".join(a.split())

【讨论】:

【参考方案3】:
import re
text = "20101002  100224   1    1044      45508  1001  1002  1003  1004  1005  1006"
re.sub(r"\s+", " ", text)
#=> 20101002 100224 1 1044 45508 1001 1002 1003 1004 1005 1006

【讨论】:

以上是关于Python:从一串数字中删除随机空格[重复]的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 从一串单词中删除所有重复的单词。不只是重复,而是需要删除重复项的所有实例。

excel表格如何统一删除一串数字前面相同数字

excel怎么删除一串数字中的数字

python中怎么从一个列表中可重复的随机抽取元素构成新列表?

如何删除数组中的最后一个逗号和空格? Java [重复]

C语言,目的:输入一串数字,用空格隔开,然后赋值给数组