我read.py
从以下问题中修改了以下python-regex文件。在同一目录中,我还有另一个名为1.txt的文本文件。
read.py
import re
with open ("1.txt", "r") as text:
data = text.read()
print( re.sub(r"(.)\1*", lambda x: "{}{}".format( x.group(1), len(x.group())), text) )
1.txt
UUBBBRRLLLBBBDDD
我想读的内容1.txt
到text
的read.py
结构,然后得到了相同的结果,如果我插入的文本到read2.py
代码(见下文)。
import re
text = "UUBBBRRLLLBBBDDD"
print( re.sub(r"(.)\1*", lambda x: "{}{}".format( x.group(1), len(x.group())), text) )
但是,如果我运行read.py
,总是会出现以下错误:
Traceback (most recent call last):
File "axios.py", line 5, in <module>
print( re.sub(r"(.)\1*", lambda x: "{}{}".format( x.group(1), len(x.group())), text) )
File "/usr/lib/python3.8/re.py", line 208, in sub
return _compile(pattern, flags).sub(repl, string, count)
TypeError: expected string or bytes-like object
我了解我应该将其读1.txt
为变量,然后print( re.sub(r"(.)\1*", lambda x: "{}{}".format( x.group(1), len(x.group())), text) )
从中摘录read.py
。
但是我不明白为什么我没有读它,这导致了错误,并且我无法直接从中读取文件read.py
并在中得到相同的结果read1.py
。我已经用Google搜索了它,没有找到任何涉及的内容module regex
,read
并且print
在它们应该在的同一个python文件中找到它们read.py
。
“ text”变量不应该只是“ data”吗?这有效:print(re.sub(r"(.)\1*", lambda x: "{}{}".format(len(x.group()), x.group(1)), data))
“文本”是一个<class '_io.TextIOWrapper'>
(即类似文件的对象),可以从中读取然后关闭,而“数据”是一个对字符串的引用的变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句