python 中strip和split函数,readline,readlines,read的区别

本文记录了Python编程中遇到的困惑,包括`strip`和`split`函数的区别,以及`read`, `readlines`, `readline`在文件操作中的不同。通过实例展示了它们各自的功能,`strip`用于去除字符串首尾空格,`split`则是按指定规则分割字符串。同时,解释了`reporthook`回调函数在下载过程中的作用。" 133322804,11219767,BES蓝牙音频处理器iAP2协议调通实战,"['蓝牙技术', '音频处理', '通信协议']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       今天在抄写一段代码的时候,一个简单的爬虫,不太懂,就一句一句的查,查出了很多不会的地方,作个记录吧还是,首先把代码贴上来

#-*-coding:utf-8-*-
from urllib import urlretrieve

def firstNonBlank(lines):
    for eachLine in lines:
        if not eachLine.strip():
            continue

        else:
            return eachLine


def firstLast(webpage):
    f = open(webpage)
    lines = f.readlines()
    f.close()
    print firstNonBlank(lines),
    lines.reverse()
    print firstNonBlank(lines),

def download(url = 'http://www',
             process = firstLast):
    try:
        retval = urlretrieve(url)[0]
    except IOError:
        retval = None
    if retval:
        process(retval)


if __name__== '__main__':
    download()
首先不懂得就是urlretrieve(url)这个方法,查了一下urllib.urlretrieve(url[filename[reporthook[data]]])

其中,url是本地或者外部地址,filename是存在本地的文件名,

reporthook:回调函数:又不太懂,不过有一个例子,对此对他简单的理解,就是可以作为用户交互的方式:获取新浪主页并通过回调函数显示进度:

from urllib import urlretrieve
def reporthook(block_n,block_size,all_size):
    per = 100 * block_n * block_size / all_size
    if per > 100:
        pre = 100
    print "%.2f%%" % per
url = "http://www.sina.com.cn"
local = 'e:\\sina.html'
retval = urlretrieve(url,local,reporthook)[0]

结果如下:



OK,还是回到urlretrieve这个方法上,返回值是什么呢?我加了两行代码,显示出来了,如下:

def download(url = 'http://www',
             process = firstLast):
    try:
        retval = urlretrieve(url)[0]
        print "-" *20
        print urlretrieve(url)[0]
        print '-' * 20
        print urlretrieve(url)[1]
    except IOError:
        retval = None
    if retval:
        process(retval)
加上的结果,如下:


我们可以看见,返回的二元组的第一个元素就是一个临时文件的名字,而第二个元素就是网页的信息,和wireshark一样了

     接下来,阅读到readlines方法,又遇见问题了,我记得以前用过read函数,有什么区别么?查了一下:有如下区别:

没有找到一个让我很清楚的答案,先放一下:

还有就是strip和split的区别,其实我觉得两者没有什么联系,可能就是长的比较像,所以就拿到一起说了吧。写了个小代码,很弱的!呵呵

stra= "    hello@world   woqu    "
a = stra.split("@")
print a
b = str.strip(stra)
print "hello,world!",b,"——————"
得出如下的结果:


非常简单了吧!split就是分开,按照某一个规则将字符串分开而已,而strip,就是将字符串的首尾的空格去掉而已

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值