我需要做很多有关PowerPoint文件的工作,
我用win32com处理工作,
我是台湾人,我的操作系统是Windows 7-64位传统版本,
文件名中会有一些中文字符,
但是在Windows中不允许某些字符作为file_name。

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


上一行在Windows中包含无效字符,
我如何去除无效字符?
实际上,\ xe8 \ xaa \ xb2 \ x0b \ xe6 \ xb0 \ xb4是一个字符串,如果我将其打印出来,它将在控制台中显示奇怪的符号。
但是我不知道哪个字符是奇怪的符号。

提前非常感谢您!!

最佳答案

尝试这个:

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.'

10-07 12:54
查看更多