0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

指定した文字列(拡張子)から後の文字列を削除するPython版(PHPからPython)

Last updated at Posted at 2019-11-20

#はじめに
PHPで記述したサーバのプログラムをPythonで作ったらどうなるか、気になる部分から開始しようと前の日に書いた機能のPython版をと調べだしたら、あまりも簡単でしたがメモを残します。少しでもPythonを書いている方には簡単過ぎる話かもしれませんが、PHPをPythonに移行する場合はこの程度から開始した方が気持ちが楽になります。
######まず、WEBのリンクを特定の文字列で分割

01.py
string = "http://www.sharp.co.jp/support/refrigerator/doc/sjd23d_mn.pdf?productId=SJ-D23D&_ga=2.1612.1531209133-1752366186.1522914385"
# 文字列の位置を検索
s = string.find('.pdf')
print (s)
# 57 が返って来ます
# ここで少し実験。
s = string.find('doc')
# 44 が返って来ます。
s = string.find('.doc')
# -1 が返って来ます。特殊文字を識別してくれます。(この程度で感動)

######少し調べて使えそうな関数 split() を発見。やってみましょう。
正直言って、簡単過ぎます(笑)

02.py
string = "http://www.sharp.co.jp/support/refrigerator/doc/sjd23d_mn.pdf?productId=SJ-D23D&_ga=2.1612.1531209133-1752366186.1522914385"
print (string.split('.pdf'))
# 以下が返って来ます。これは .pdf で分けた左右なんですね。
# ['http://www.sharp.co.jp/support/refrigerator/doc/sjd23d_mn', '?productId=SJ-D23D&_ga=2.1612.1531209133-1752366186.1522914385']
print (string.split('.pdf')[0])
# http://www.sharp.co.jp/support/refrigerator/doc/sjd23d_mn これではぼ欲しい文字列になります。
string = string.split('.pdf')[0] + '.pdf'
print (string)
# http://www.sharp.co.jp/support/refrigerator/doc/sjd23d_mn.pdf これだけで済みます。

######次条件で分岐ですが、特殊文字の挙動は find() で問題ないので楽ですね。
実にシンプルに書けました。

03.py
string = "http://www.sharp.co.jp/support/refrigerator/doc/sjd23d_mn.pdf?productId=SJ-D23D&_ga=2.1612.1531209133-1752366186.1522914385"
if string.find('.docx') > 0:
	    string = string.split('.docx')[0] + '.docx'
elif string.find('.doc') > 0:
	    string = string.split('.doc')[0] + '.doc'
elif string.find('.xlsx') > 0:
	    string = string.split('.xlsx')[0] + '.xlsx'
elif string.find('.xls') > 0:
	    string = string.split('.xls')[0] + '.xls'
elif string.find('.pptx') > 0:
	    string = string.split('.pptx')[0] + '.pptx'
elif string.find('.ppt') > 0:
	    string = string.split('.ppt')[0] + '.ppt'
elif string.find('.pdf') > 0:
	    string = string.split('.pdf')[0] + '.pdf'
print (string)
# http://www.sharp.co.jp/support/refrigerator/doc/sjd23d_mn.pdf 問題なく返って来ます。

PHPでは少し悩んだ事がこれだけで出来てしまいます。Pythonの人気はこの手軽さでしょう。最近の方はあまりご存知無いと思いますが、30年程前に流行した「xBase言語」とPyhtonは似ていると感じ出しています。PHPからPythonの移行は一時期コンバートのサイトがあったようですが、無いようですので、自分の為に移行のメモを続けて書こうかと思っています。

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?