大家好,我想问一下如何使用python在文本文件中保留特殊的字母/字符?
输入文本文件:
abcÃ/cdéf@-www
我想删除符号,但保留字母和特殊字母,符号表示〜!@#$%^ *()_ + {} <>:“ |依此类推。在尝试运行代码以这样做,这就是我得到的:
输出文本文件:
abc cd f www
这些符号已被删除并替换为我想要的空格,但是特殊字母也已被删除并替换为我不需要的空格。有什么方法可以删除符号但仅保留特殊字母吗?
预期的输出文本文件:
abcà cdéf www
这是我的代码:
string = open('abc.txt', encoding='utf-8').read()
new_str = re.sub('[^a-zA-Z0-9\n\.]', ' ', string)
open('abc.txt', 'w', encoding='utf-8').write(new_str)
任何帮助将不胜感激,谢谢!
答案 0 :(得分:1)
将第二行替换为:
template<typename T, SizeType D, typename SizeType = int>
class StaticArray{};
//...
StaticArray<float, 5> s; // = StaticArray<float, 5, int>
StaticArray<float, (1<<40), size_t>; // 1<<40 doesn't fit in int
答案 1 :(得分:0)
您可以指定仅删除特殊字符/标点符号
puncts = re.escape(string.punctuation)
print re.sub(r'['+ puncts +']', '', your_string)
答案 2 :(得分:0)
您可以尝试以下操作:
import re
string = open('abc.txt', encoding='utf-8').read()
new_str = re.sub('[/~!@#$%^*()_+{}<>:"|-]', ' ', string) # put your characters to replace here
open('abc.txt', 'w', encoding='utf-8').write(new_str)
输出为:
abcà cdéf www