2008年4月16日水曜日

[Code] Pythonスクリプト

[Code] Pythonのお勉強スクリプト
Pythonのお勉強スクリプト3
2008/5/17(土) 午後 2:22
アンドロイド 練習用
URLを抽出してwgetで落としてみたい。
しかし、この方法で落とせるサイトは少ない^^;
もっと修行して、いろんなファイルを自動で落とせるスクリプトを作ってみたいものだ。
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# htmlページをwgetしてURLを抽出したリストを作
# 初期設定 → カレント,作業,保存ディレクトリ
import os,urllib,re,commands
folname1 = '/home/ユーザー名/デスクトップ'
folname2 = 'gtmp'
folname3 = ''
# 作業フォルダが既にあったら終了、なければ作成
print '\n'
os.chdir(folname1)
if os.path.exists(folname2) == 1:
print 'gtmp フォルダが存在します。\n終了します。\n'
exit()
else:
os.mkdir(folname1 + '/' + folname2)
# 保存フォルダ名を入力 既にあったら終了
folname3 =raw_input('保存フォルダ名?=')
if os.path.exists(folname3) == 1:
print folname3 + ' フォルダが存在します。\n終了します。\n'
exit()
# 処理するhtmlをダウンロード
os.chdir(folname1 + '/' + folname2)
geturl = raw_input('\nURLを入力してください。\n')
urllib.urlretrieve(geturl,'html.txt')
# URLを抽出する
i = open('html.txt', 'r')
s = i.read()
reg = re.compile(r'o = open('list.sh','w')
o.write('#! /bin/bash\n')
o.write('cd ' + folname1 + '/' + folname3 + '\n')
for r in reg.finditer(s):
o.write('wget ' + r.group(1) + '\n')
i.close()
o.close()
# 実行権限を与え 作業フォルダをリネーム
commands.getoutput('chmod 755 list.sh')
os.chdir(folname1)
os.rename(folname2, folname3)

簡単にメモを取る魔法
https://blogs.yahoo.co.jp/memo_jane/





Pythonのお勉強スクリプト4
2008/5/18(日) 午前 10:31
アンドロイド 練習用
Pythonでの日本語の扱い
Pythonのデフォルトはユニコード。
utf-8はユニコードだと思っていたけど、別ものらしい。
デコード
 もとのデータを取り出すこと ユニコードに変換する
 関数の使い方はちょっと違うけど、decode()とunicode()は同じ
エンコード
 データ符号化 ユニコード以外に変換する s-jis euc-jp utf-8などへ
 encode()
2行目に
# -*- coding: utf-8 -*-
'' バイト列
u'' Unicode文字列 1文字を1文字として扱うために必要
ex)
>>> len('日本語')
9
>>> len (u'日本語')
3
import os
list = os.listdir('/home/mobi')
for l in list:
print l.decode('utf-8')
■unicode()関数
ユニコードにする
unimoji = unicode('ゆにこーど', 'utf-8')
mojiretu = '日本語'
u_ignore = unicode(mojiretu, 'euc-jp', 'ignore')
コードがおかしくても、できるだけ変換してしまう。(指定した動作)
u_strict = unicode(mojiretu, 'euc-jp', 'strict')
コードがおかしい時は、エラーにする(デフォルト)
■decode()関数
他の文字コードをユニコードに変換
mojiretu = '文字列です'
unimoji = unicode(mojiretu, 'utf-8')
unimoji = mojiretu.decode('utf-8')
上の2つは同じ。
■encode()関数
ユニコードを別の文字コードに変換。
mojiretu = u'文字列です'
utfmoji = mojiretu.decode('utf-8')
■直接別の文字コードに変換
sjis_mojiretu = euc_mojiretu.decode('euc-jp').encode('shift_jis')
sjis_mojiretu = unicode(euc_mojiretu, 'euc-jp').encode('shift_jis')
どうもこういうことらしい。。。

簡単にメモを取る魔法
https://blogs.yahoo.co.jp/memo_jane/


0 件のコメント:

コメントを投稿