ppt
の内容を保存するファイル名として使用したいので、漢字の問題、またはパワーポイントファイルの特殊文字を処理する次のコードを取得しました。特殊文字が含まれていると何らかの例外がスローされるため、次のコードを使用して処理します。
Python 2.7 では問題なく動作しますが、Python 3.0 で実行すると、次のエラーが表示されます。
if not (char in '<>:"/\|?*'):
TypeError: 'in <string>' requires string as left operand, not int
エラー メッセージを Google で検索しましたが、解決方法がわかりません。if not (char in '<>:"/\|?*'):
コードは文字をASCIIコード番号に変換することだと知っています よね?
Python 3 で私の問題を解決する例はありますか?
def rm_invalid_char(self,str):
final=""
dosnames=['CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9']
for char in str:
if not (char in '<>:"/\|?*'):
if ord(char)>31:
final+=char
if final in dosnames:
#oh dear...
raise SystemError('final string is a DOS name!')
elif final.replace('.', '')=='':
print ('final string is all periods!')
pass
return final