Python 实践心得 —— 中英混杂的字符串对齐输出

第一次写技术博客,Python刚刚开始学习写的不好请多指教。

据说程序猿都有点强迫症


听说Python的爬虫很厉害,于是学习着,第一次实践去爬了个起点网的网页下来。

起点网爬下来的源码

代码如下,小白写的很渣。。。正则什么的真的好难记啊

# -*- coding:utf-8 -*-

# ======================= 库导入 ============================
import urllib
import re
# ======================= 网络参数 ===========================
# 查询网址
url = "http://a.qidian.com"

# 正则字段
target = r'target="_blank" data-eid="qd_B58" data-bid=".*?">(.*?)</a></h4>.*?' \
         r'<p class="update"><span >(.*?)</span>.*?' \
         r'target="_blank" data-eid="qd_B60">(.*?)</a>'


# ======================== 主程序 ============================
resp = urllib.urlopen(url).read()           # http响应
print resp
assert isinstance(resp, basestring)         # 确定是否有正确的回应

reg = re.compile(target, re.S)              # 编译正则表达式
names = re.findall(reg, resp)               # re模块查找
print '一共有',len(names), '个结果\n'

for i in names:                             # 遍历输出
    print
    for j in range(0, len(i)):
        sys.stdout.write(i[j])

然后试着用正则表达式抓取了书名、字数、分类下来,输出如下:

这里写图片描述

结果,恩,好像挤一起不是很好看


嗯,加空格或者制表符试试

加上空格试试看。根据设定的字符长度格式,检测需要输出的字符串长度,找到两者的差值,用空格补上。


这里可以用format或者ljust(靠左对齐)、rjust(靠右对齐)调教


下面的代码能让如下的字符串向左对齐,长度限定30,不够的在右侧填充‘-’(不填默认参数是空格)

str = 'This is a string.'
str.ljust(30,'-')
# 输出:
# This is a string.

主程序改成了:

# ======================



版权声明:本文为JayRoxis原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/JayRoxis/article/details/72669952