2

度分秒単位の座標値を持つアクセステーブルがあり、次のようにフォーマットされています。

90-12-28.15

次のように再フォーマットしたい:

90° 12' 28.15"

基本的に、ダッシュを度分と秒の文字、および度と分の間のスペース、および分と秒の間の別のスペースに置き換えます。

「置換」機能を使用することを考えていますが、ダッシュの最初のインスタンスを度記号 (°) とスペースに置き換えてから、ダッシュの 2 番目のインスタンスを検出して分記号を配置する方法がわかりません。とスペースを入力し、最後に秒文字を追加します。

どんな助けでも大歓迎です。

マイク

4

4 に答える 4

5

正規表現 とsplit()は優れたソリューションですが、これを行うのreplace()はかなり簡単です。

lat = "90-12-28.15"

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

または、すべてを 1 行で行うこともできます。

lat = lat.replace("-", "° ", 1).replace("-", "' ", 1) + '"'
于 2012-08-01T22:49:27.887 に答える
2

最初の文字列を分割するだけです:

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

str = '90-12-28.15'

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

print str2
于 2012-08-01T22:44:40.873 に答える
1

Python の正規表現モジュールre、特にre.sub(). 詳細については、こちらの Python ドキュメントを確認してください。

正規表現に慣れていない場合は、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
于 2012-08-01T22:40:15.450 に答える
0

Python の「置換」文字列メソッドは使いやすいはずです。ドキュメントはこちらにあります

あなたの場合、次のようなことができます:

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 + "\""
于 2012-08-01T22:50:50.727 に答える