2012-08-01 38 views
1

「替換」功能我有了一堆協調度分秒值和它們的格式是這樣的存取表:使用Python中

90-12-28.15

我需要對其進行格式化是這樣的:

90°12' 28.15"

基本上與度分和秒的字符和度和分和分秒之間另一個之間的空間代替破折號

我正在考慮使用'替換'功能,但我不知道如何用度符(°)和空格替換短劃線的第一個實例,然後檢測短劃線的第二個實例並放置分鐘字符和空格,然後在最後加上秒字符。

任何幫助表示讚賞。

邁克

回答

1

您可能需要使用Python的正則表達式模塊re,特別re.sub()。查看Python文檔here瞭解更多信息。

如果您不熟悉正則表達式,請參閱本教程here,同樣可以從Python文檔中獲得。

import re 

text = 'replace "-" in 90-12-28.15' 
print(re.sub(r'(\d\d)-(\d\d)-(\d\d)\.(\d\d)', r'''\1° \2' \3.\4"''', text)) 
# use \d{1,2} instead of \d\d if single digits are allowed 
+0

我添加的代碼示例 – jfs 2012-08-01 23:23:51

+0

謝謝,這是一個很好的例子。 – Amit 2012-08-01 23:34:30

2

我只想分割你的第一個字符串:

# -*- coding: utf-8 -*- 

str = '90-12-28.15' 

arr = str.split('-') 
str2 = arr[0] +'° ' + arr[1] + '\'' +arr[2] +'"' 

print str2 
4

雖然正則表達式和split()都很好的解決方案,與replace()這樣做是相當容易的。

lat = "90-12-28.15" 

lat = lat.replace("-", "° ", 1) 
lat = lat.replace("-", "' ", 1) 
lat = lat + '"' 

或者你也可以做到這一切在同一行:

lat = lat.replace("-", "° ", 1).replace("-", "' ", 1) + '"' 
+0

哦...只是回答相同... – marianobianchi 2012-08-01 22:52:09

+0

很酷,我不知道你能做到這一點。 – Michael0x2a 2012-08-01 22:53:26

0

蟒蛇「替換」字符串的方法應該是易於使用。你可以找到文檔here

在你的情況,你可以做這樣的事情:

my_str = "90-12-28.15" 
my_str = my_str.replace("-","°",1)# 1 means you are going to replace the first ocurrence only 
my_str = my_str.replace("-","'",1) 
my_str = my_str + "\""