1

パワーポイント ファイルについて多くの作業を行う必要があります。win32com を使用して仕事を処理しています。私は台湾人です。私の OS は Windows 7-64 ビットの従来のバージョンであり、ファイル名には漢字が含まれていますが、一部の文字はそうではありません。 Windows では file_name にすることができます。

like '\xe8\xaa\xb2\x0b\xe6\xb0\xb4'

上記の行には Windows で無効な文字が含まれています。無効な文字を削除するにはどうすればよいですか? 実際、 \xe8\xaa\xb2\x0b\xe6\xb0\xb4 は文字列です。印刷すると、コンソールに奇妙な記号が表示されます。しかし、どの文字が奇妙な記号なのかわかりません。

事前にどうもありがとうございました!!

4

2 に答える 2

2

これを試して:

dosnames=['CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9']
final=''
string='th\xe8is i\xaas \xb2a te><s\x0b\xe6t\xb0.\xb4'
for char in string:
  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('.', '')=='':
  raise SystemError('final string is all periods!')

これにより、DOS 名と許可されていない ASCII 文字がチェックされます。それから、私にprint finalくれます'this is a test.'

于 2013-04-09T17:13:59.053 に答える
1

\x0bウィンドウのファイル名の一部として許可されていない垂直タブを表すバイトが原因で失敗しています。

Windows では、次の場合を除き、ファイル名の一部として任意の Unicode 文字を使用できます。

  • < > : " / \ | ? *
  • 整数表現が 0 ~ 31 の文字 (ASCII スペース未満)
  • ターゲット ファイル システムで許可されていないその他の文字 (末尾のピリオドやスペースなど)
  • DOS 名のいずれか: CON、PRN、AUX、NUL、COM1、COM2、COM3、COM4、COM5、COM6、COM7、COM8、COM9、LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8、LPT9 ( AUX.txtなどを避けてください)
  • ファイル名はすべてピリオドです
于 2013-04-09T17:15:07.133 に答える