यदि आपके पास केवल ASCII वर्ण हैं और गैर-मुद्रण योग्य वर्णों को हटाना चाहते हैं, तो सबसे आसान तरीका उन वर्णों को string.printable का उपयोग करके फ़िल्टर करना है। उदाहरण के लिए,
>>> import string >>> filter(lambda x: x in string.printable, '\x01string') string
0x01 मुद्रित नहीं किया गया था क्योंकि यह मुद्रण योग्य वर्ण नहीं है। यदि आपको यूनिकोड का भी समर्थन करने की आवश्यकता है, तो आपको इन वर्णों को हटाने के लिए यूनिकोड डेटा मॉड्यूल और रेगेक्स का उपयोग करने की आवश्यकता है।
उदाहरण
import sys, unicodedata, re # Get all unicode characters all_chars = (unichr(i) for i in xrange(sys.maxunicode)) # Get all non printable characters control_chars = ''.join(c for c in all_chars if unicodedata.category(c) == 'Cc') # Create regex of above characters control_char_re = re.compile('[%s]' % re.escape(control_chars)) # Substitute these characters by empty string in the original string. def remove_control_chars(s): return control_char_re.sub('', s) print (remove_control_chars('\x00\x01String'))
आउटपुट
यह आउटपुट देगा:
String