使用 "re.sub" 剥离 Python 中的代码



我读到:在Python

中从字符串中除去除字母数字字符以外的所有字符

这:Python:删除除空格和字母数字

之外的所有内容

不太明白,但我尝试了一下自己的代码,现在看起来像这样:

import re
decrypt = str(open("crypt.txt"))
crypt = re.sub(r'([^sw]|_)+', '', decrypt)
print(crypt)

当我运行脚本时,它返回了这个答案: C: 用户桌面 Adrian python python tick.py>ioTextIOWrapper namecrypttxt moder encodingcp1252

我试图从文档中摆脱所有额外的代码,只是保持数字和字母,在文档中可以找到以下文本:http://pastebin.com/Hj3SjhxC

我正试图解决这里的任务:http://www.pythonchallenge.com/pc/def/ocr.html

谁知道"ioTextIOWrapper namecrypttxt moder encodingcp1252"是什么意思?我应该如何格式化代码以正确地将其从字母和数字之外的所有内容中剥离出来?

真诚

str(open("file.txt"))并不像你想象的那样。open()返回一个文件对象。str给出了该文件对象的字符串表示形式,而不是文件的内容。如果您想读取文件的内容,请使用open("file.txt").read() .

或者,更安全的,使用with语句:

with open("file.txt") as f:
    decrypt = f.read()
crypt = ... 
# etc.

您可以直接搜索字母数字字符。这样的:

print ''.join(re.findall('[A-Za-z]', decrypt))

你还需要:

decrypt = open("crypt.txt").read()

最新更新