假设我有一个如下所示的数组。
X = ['2.2 31452- MMMMM 25 EA 1.2 AC - Auto Uni','20Eye Customer: 300xxxx ','Order Number: 215987 Salesperson: Barbara']
如您所见,没有可读格式,因为它不是以空格分隔或制表符分隔的。有些空格是单一的,有些空间是2,3,4等。我如何格式化数据,使其采用以下格式:
X = ['2.2,31452- MMMMM,25 EA,1.2 AC - Auto,Uni,20Eye,Customer: 300xxxx,Order Number: 215987,Salesperson: Barbara']
基本上我想将结果写入csv文件。
答案 0 :(得分:4)
您可以使用regular expression
。
re.sub(' +', ',', ' '.join(X))
输出和@albert一样,但你不能调整它。
答案 1 :(得分:3)
X = ['2.2 31452- MMMMM 25 EA 1.2 AC - Auto Uni', '20Eye Customer: 300xxxx ',
'Order Number: 215987 Salesperson: Barbara']
delimiter = ','
def extract(s):
SPACE = ' '
result = []
start = 0
end = 0
already_encounter_space = False
continous_space = False
for idx, c in enumerate(s):
if c != SPACE:
if already_encounter_space:
if continous_space:
result.append(s[start:end + 1])
start = idx
else:
end = idx
else:
end = idx
already_encounter_space = False
continous_space = False
else:
if already_encounter_space:
continous_space = True
else:
already_encounter_space = True
result.append(s[start:end + 1])
return result
tmp = list()
for s in X:
tmp.extend(extract(s))
X = [delimiter.join(tmp)]
print X
我们得到了这样的声音:
['2.2,31452- MMMMM,25 EA,1.2 AC - Auto,Uni,20Eye,Customer: 300xxxx,Order Number: 215987 Salesperson: Barbara']
请注意,最后一个没有用逗号分隔,因为它们之间只有一个空格(Thx到@YamanJain,它让我想起了这个问题)。这是你想要的吗?
答案 2 :(得分:0)
你需要有一个分隔符,没有它你就无法实现你的目标。获得后,您只需使用split
方法即可。