python - 删除从 Internet 打印文件时出现的所有“垃圾”
问题描述
我想从 Internet 打印一个文件,其中包含\n
和b'
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
?
解决方案
当您从互联网获取数据时,您是以二进制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())
推荐阅读
- javascript - Javascript对象解构和默认参数组合
- javascript - Yii2 的 Slider Kartik 扩展中的插件事件
- java - 固定/不可调整大小的裁剪窗口
- c - 如何制作后台进程块以输入 la shell 的 `bg` 命令?
- make-install - Smokeping make 安装错误
- python - 难以在 Selenium 中模拟点击,然后在点击后抓取新页面的数据
- regex - Regex select between brackets if given word is found
- c - 如何抑制 sprintf() 警告“将 1 到 11 个字节之间的指令写入大小为 6 的区域”
- angular - 将路由集中到 Angular 中的服务中
- java - Java 10 上的远程 JProfiler