我需要做很多有关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.'