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

Lon*_*rts 1 python regex string formatting

我读到了这一点: 从Python中的字符串中删除除字母数字字符之外的所有内容

而这: Python:除了空格和字母数字之外的所有内容

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

import re

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

crypt = re.sub(r'([^\s\w]|_)+', '', decrypt)

print(crypt)
Run Code Online (Sandbox Code Playgroud)

当我运行脚本时它回来了这个答案: C:\ Users\Adrian\Desktop\python> python tick.py ioTextIOWrapper namecrypttxt moder encodingcp1252

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

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

任何人都知道"ioTextIOWrapper namecrypttxt moder encodingcp1252"是什么意思?我应该如何格式化代码以正确删除除字母和数字之外的所有内容?

诚挚

Bre*_*arn 5

str(open("file.txt"))不会做你认为它做的事情. open()返回一个文件对象. str为您提供该文件对象的字符串表示形式,而不是文件的内容.如果要读取文件的内容使用open("file.txt").read().

或者,更安全地使用with声明:

with open("file.txt") as f:
    decrypt = f.read()
crypt = ... 
# etc.
Run Code Online (Sandbox Code Playgroud)