1

我读到这个: 从 Python 中的字符串中剥离除字母数字字符之外的所有内容

还有这个: Python:去除除空格和字母数字之外的所有内容

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

import re

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

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

print(crypt)

当我运行脚本时,它会返回这个答案: 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 现代编码cp1252”是什么意思?我应该如何格式化代码以正确地将其从除字母和数字之外的所有内容中剥离出来?

真挚地

4

2 回答 2

5

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

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

with open("file.txt") as f:
    decrypt = f.read()
crypt = ... 
# etc.
于 2013-01-03T22:00:15.653 回答
3

您可以只搜索字母数字字符。像这样:

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

你还想要:

decrypt = open("crypt.txt").read()
于 2013-01-03T22:00:41.747 回答