python爬虫===表情包爬取

这里写图片描述

问题:
1.路径问题以及获取路径问题
这里写图片描述

**注:argv[0]只是得到的是当前脚本的绝对位置;而os模块中的几种获得路径的方法,得到的是当前的工作目录,如:open(‘1.txt’,’r’),则会在当前工作目录查找该文件。即大部分的文件操作都是相对于当前工作路径。
若要改变当前工作路径,可以用:os.chdir(path) 。如os.chdir(E:\Program Files),则大部分的文件操作就会是相对于E:\dir1。fobj = open(‘Hello.txt’),实际会打开E:\Program Files\Hello.txt文件。**
来自:https://blog.csdn.net/qq_15188017/article/details/53991216

#coding:utf-8
import  os

path = 'C:\Python27\Lib\site-packages\myLibrary'

print os.path.abspath(path) #返回绝对路径
print os.path.basename(path) #返回文件名
'os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径。'
print os.path.dirname(path) #返回文件路径
print os.path.exists(path) #路径存在则返回True,路径损坏返回False
print os.path.lexists              #路径存在则返回True,路径损坏也返回True
print os.path.expanduser(path)    #把path中包含的"~"和"~user"转换成用户目录
print os.path.expandvars(path)    #根据环境变量的值替换path中包含的”$name”和”${name}”
print os.path.getatime(path)      #返回最后一次进入此path的时间。
print os.path.getmtime(path)      #返回在此path下最后一次修改的时间。
print os.path.getctime(path)      #返回path的大小
print os.path.getsize(path)       #返回文件大小,如果文件不存在就返回错误
print os.path.isabs(path)         #判断是否为绝对路径
print os.path.isfile(path)        #判断路径是否为文件
print os.path.isdir(path)         #判断路径是否为目录
print os.path.islink(path)        #判断路径是否为链接
print os.path.ismount(path)       #判断路径是否为挂载点()
'os.path.join(path1[, path2[, ...]])         #把目录和文件名合成一个路径'
print os.path.normcase(path)      #转换path的大小写和斜杠
print os.path.normpath(path)      #规范path字符串形式
print os.path.realpath(path)      #返回path的真实路径
'os.path.relpath(path[, start])  #从start开始计算相对路径'
'os.path.samefile(path1, path2)  #判断目录或文件是否相同'
'os.path.sameopenfile(fp1, fp2)  #判断fp1和fp2是否指向同一文件'
'os.path.samestat(stat1, stat2)  #判断stat tuple stat1和stat2是否指向同一个文件'
print os.path.split(path)     #把路径分割成dirname和basename,返回一个元组
print os.path.splitdrive(path)     #一般用在windows下,返回驱动器名和路径组成的元组
print os.path.splitext(path)  #分割路径,返回路径名和文件扩展名的元组
print os.path.splitunc(path)      #把路径分割为加载点与文件
'os.path.walk(path, visit, arg)  #遍历path,进入每个目录都调用visit函数,visit函数必须有'
#3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有
#文件名,args则为walk的第三个参数
print os.path.supports_unicode_filenames      #设置是否支持unicode路径名

(一)
data.json不存在,便创建并写入Json格式的默认参数

import os
import json

name = 'data.json'
if not(os.path.exists(name) and os.path.isfile(name)):
    with open(name, 'w') as f:
        f.write('["如果data.json不存在,便创建并写入Json格式的默认参数。"]')

with open(name, 'r') as f:
    cfg = json.load(f)#读取data.json


print(cfg)

windows系统的地址栏能够识别单反斜杠”\”,而不能识别双反斜杠”\”,这是系统文件系统自身的约定,路径层次使用“\”区分而不是使用“\”来区分:
所以F:\Office\Trunk__Out\Pro Debug\Bin\OfficeInfo.dll这样是不正确的。
而在程序中,字符串中的“\”主要是为了转义,“\”转义后被理解为“\”,“\”才能够被操作系统文件系统所理解,比如用字符串表示上述路径:“F:\Office\Trunk\__Out\Pro Debug\Bin\OfficeIn可以fo.dll”,同理,如果想要表示“\”,可以写作“\\”。

2.if函数判断问题,是否执行成功
3.with语句
https://blog.csdn.net/yanyangjie/article/details/78378217
https://blog.csdn.net/bitcarmanlee/article/details/52745676
4.with open语句:
在读写文件时为了保证无论是否出错都能正确地关闭文件,我们可以使用try … finally来实现:

try:
    f = open('/path/to/file', 'r')
    print(f.read())
finally:
    if f:
        f.close()

但是每次都这么写实在太繁琐,所以,Python引入了with语句来自动帮我们调用close()方法:

with open('/path/to/file', 'r') as f:
    print(f.read())

可以进行多个文件同时打开,并且不用关心文件有关闭的问题:

with open('a.txt','r',encoding='utf-8') as f,open('b.txt') as f1:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没读过书的孩子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值