[英]Points for thousand mark and decimal mark
我有一個混亂的txt文件,點數為千分(1.000或19.329)和小數點(10000.3)。 兩個示例行:
John;1.952;2003;20.365;1.214
Ryan;2.342;2002;3045.3;345
我想刪除千分的點並保留小數點。 最簡單的方法是什么?
如果您在小數點后面沒有正好三位小數,則以下內容將執行此操作:
>>> import re
>>> re.sub(r"\.(\d\d\d(\D|$))", r"\1", "200.000.5")
'200000.5'
如果正好跟隨正好三位數,正則表達式將刪除一個點。 它不會匹配較少的數字(因為它會查找三個\\d
),並且它將不會匹配更多,因為它在它們之后尋找非數字( \\D
)。
假設小數始終只有一位數:
line = "Ryan;2.342;2002;3045.3;345"
parts = line.split(";")
#Remove the name.
name = parts.pop(0)
def fix(part):
decimal = ""
if part[-2] == '.':
decimal = part[-2:]
part = part[:-2]
part = part.replace('.',',')
return part+decimal
parts = [fix(part) for part in parts]
line = name+";"+";".join(parts)
我認為沒有一種非常簡單的方法可以做到這一點。
這取決於你的數字的精確度。 文本文件中的數字有多少小數位? 如果它小於3,那么它應該是微不足道的。 如果它是3或更多,我不確定如果沒有至少一些錯誤就可以完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.