2016-12-29 189 views
0

我試圖以編程方式格式化一個pdf菜單,並且一切都進行得很順利,直到我注意到某些換行符打破了該模式。這是我的原始文本的部分看起來像:刪除Python中的特定換行符

LATIN 
Saturday & Sunday: 
Build Your Own Breakfast Burrito, Scrambled Eggs, Cheesy Eggs, Latin Tofu 
Scramble, Latin Roasted Vegetables 
DESSERT 
Daily: 
Assorted Pastries 

我注意到,有些項目(如拉丁豆腐爭奪)有擺在他們中間的換行符。鑑於菜單項是可變的,並且在其他地方可能會有額外的換行符,有什麼辦法可以刪除逗號之間出現的換行符(因爲所有的項都是以逗號分隔的)?

編輯: 最後的結果將理想是這個樣子:

LATIN 
Saturday & Sunday: 
Build Your Own Breakfast Burrito, Scrambled Eggs, Cheesy Eggs, Latin Tofu Scramble, Latin Roasted Vegetables 
DESSERT 
Daily: 
Assorted Pastries 
+1

您可以包括你想要的最終結果? – MYGz

+0

剛剛添加了一個可能的最終結果 – SebastianLloret

+1

[我如何在Python中刪除(chomp)換行符?](http://stackoverflow.com/questions/275018/how-can-i-remove-chomp-a-換行符在Python中) –

回答

1

下面MULTILINE使用re.sub用正則表達式的嘗試,它只是替換成逗號之前換行和下一行包含逗號

但是,如果換行符位於最後一項,例如,它將不起作用。拉丁烤蔬菜

txt = ''' 
LATIN 
Saturday & Sunday: 
Build Your Own Breakfast Burrito, Scrambled Eggs, Cheesy Eggs, Latin Tofu 
Scramble, Latin Roasted Vegetables 
DESSERT 
Daily: 
Assorted Pastries 
''' 

import re 
newtxt = re.sub('(,[^\r\n]*?)[\r\n](?=[^\r\n]+?,)', r'\1 ', txt, re.MULTILINE) 
# LATIN 
# Saturday & Sunday: 
# Build Your Own Breakfast Burrito, Scrambled Eggs, Cheesy Eggs, Latin Tofu Scramble, Latin Roasted Vegetables 
# DESSERT 
# Daily: 
# Assorted Pastries 
1

在Python中你可以使用line.strip('\n')line.strip('\t')除去換行符和水龍頭的空間。或者,您可以使用replace('\ n','')從String行中刪除所有換行符空格。

>>> line="Welcomes\n" 
>>> line.replace('\n','') 
'Welcomes' 
>>> 

或者,你可以使用rstrip()方法從字符串行中刪除所有的換行符空間

>>> line.rstrip() 
'Welcomes' 
+0

我已經看過rstrip()和strip()以及replace()。我只想在逗號之間替換換行符。 – SebastianLloret