Pythonで文字列をリスト化して一文字づつ処理


press
Pythonで文字列をリスト化して一文字づつ処理

Pythonで文字列をリスト化して一文字づつ処理

Pythonで文字列をリスト化して一文字づつ処理する方法です。サンプルでは一文字づつ文字をshift-jisに変換して、変換できない文字を表示します。

開発環境

$ python -V
Python 3.7.0

$ tree
├── text.txt
└── word_list.py

ソースコード

text.txt

吾輩は猫である。名前はまだ無い。«

word_list.py

path = 'text.txt'
with open(path) as f:
    words = f.read()

for word in (list(words)):
    try:
        word.encode('shift-jis')
    except UnicodeEncodeError:
        print(word)

解説

path = 'text.txt'
テキストファイルのパスを指定
with open(path) as f:
words = f.read()

テキストファイルから文字列を読込
for word in (list(words)):
try:
word.encode('shift-jis')
except UnicodeEncodeError:
print(word)

(list(words))で文字列をリスト化
word.encode(‘shift-jis’)で文字をshift-jisに変換
except UnicodeEncodeError:で変換できなかった場合の処理
print(word)で変換んできなかった文字を表示

結果

テキストファイルの文字列の中にshift-jisに変換できない文字が入っているので、”«”と変換できない文字が表示されます。

補足

(list(words))で文字列はこのようにリスト化されます。

['吾', '輩', 'は', '猫', 'で', 'あ', 'る', '。', '名', '前', 'は', 'ま', 'だ', '無', 'い', '。', '«']

当ブログは群馬県でPython / Djangoを中心にウェブアプリケーションを開発している株式会社ファントムが運営しています。

株式会社ファントムへのお問い合わせ




    Show Comments (0)

    Comments

    Related Articles

    Python

    名前に現在時刻を入れたファイルが連番かどうか判定(前半)

    名前に現在時刻を入れたファイルが連番かどうか判定(前半) なにかアクションがあった際に生成されるファイル名に現在時刻が入ったファイルが、連番になっているかどうかを判別して連番になっていたらまとめてリスト化する方法です。手 […]

    Posted on by press
    Python

    Beautiful Soupでbrタグを改行コードに変換する

    Beautiful Soupでbrタグを改行コードに変換する Beautiful Soupでスクレイピングしたdivタグ内にbrタグがあった際に改行コードに変換する方法です。以下のコードはbrタグが複数ある場合にも対応し […]

    Posted on by press