首页 > 解决方案 > 删除从 Internet 打印文件时出现的所有“垃圾”

问题描述

我想从 Internet 打印一个文件,其中包含\nb'

from urllib.request import urlopen
data = urlopen('http://willswebdev.000webhostapp.com/plan.txt')
for line in data: 
    print(line)
b'Hello Series\n' 

这是第一行,我该如何摆脱b'and \n

标签: pythonurllib

解决方案


当您从互联网获取数据时,您是以二进制bytes格式获取它们,因此b前缀,
对于该部分,您只需将二进制字符串转换为str可以使用该bytes decode方法完成的,
例如

>>> var = b'hello world'
>>> type(var)
<class 'bytes'>
>>> svar = var.decode()
>>> type(svar)
<class 'str'>
>>> var
b'hello world'
>>> svar
'hello world'
>>>

对于\n,它是换行符,这是在键盘上按 enter 时输入到文件中的字符,因此读取数据的程序知道换行符应该从哪里开始,并且它是 python 在运行时迭代的点for line in data
要删除它,您只需要使用删除所有不可打印字符的str方法strip(其中一个是所说的\n字符)。

因此你需要做

for line in data:
    print(line.decode().strip())

推荐阅读