Home >Backend Development >Python Tutorial >How to Remove Non-ASCII Characters while Preserving Periods and Spaces?
Removing Non-ASCII Characters while Preserving Periods and Spaces
The goal is to process textual data stored in a .txt file and extract a string without any non-ASCII characters, while preserving both spaces and periods. To achieve this, the provided code defines a function onlyascii() that determines if a character should be included by checking its ASCII value. However, it currently also removes periods and spaces.
To modify onlyascii() to exempt periods and spaces, we can leverage Python's string.printable module. string.printable contains a set of characters considered printable, including spaces and periods.
The updated definition of onlyascii() utilizing string.printable would be:
def onlyascii(char): if ord(char) < 48 or ord(char) > 127 or char not in string.printable: return '' else: return char
By incorporating this check into onlyascii(), characters that are not printable, excluding spaces and periods, will be filtered out.
Here is the corrected code with the updated onlyascii() function:
def onlyascii(char): if ord(char) < 48 or ord(char) > 127 or char not in string.printable: return '' else: return char def get_my_string(file_path): f=open(file_path,'r') data=f.read() f.close() filtered_data=filter(onlyascii, data) filtered_data = filtered_data.lower() return filtered_data
The above is the detailed content of How to Remove Non-ASCII Characters while Preserving Periods and Spaces?. For more information, please follow other related articles on the PHP Chinese website!