大师兄

心有猛虎 , 细嗅蔷薇


  • 首页

  • 归档

  • 标签

  • 搜索

Python join列表时报错TypeError sequence item 0 expected string

发表于 2017-08-16 | 阅读次数

join语法

1
str.join(iterable)

join是python中字符串的方法,用于将序列中的元素以指定的字符连接生成一个新的字符串。
不仅是要求前面指定的分隔符是字符串类型,后面要拼接的序列中每个元素也必须是字符串类型。
如果在序列中出现非str类型,则报错:TypeError。

阅读全文 »

Ubuntu换源解决下载安装软件速度太慢问题

发表于 2017-08-12 | 阅读次数

由于国内的网络环境,在Ubuntu上用apt-get install安装软件时,官方的源下载速度太慢,而且容易安装出错,只需换成国内的源然后update一下即可解决此问题。

阅读全文 »

Python如何递归删除空文件夹

发表于 2017-08-09 | 阅读次数

Python如何递归删除空文件夹,这个问题很常见。但大多数人的解决办法都是自己实现递归函数解决这个问题,其实根本不用那么麻烦。Python中的os.walk提供了一种从内到外的遍历目录树的方法(设置topdown=False),这样由内到外判断当前目录树下是否有文件和文件夹,如果都没有则意味着当前目录树为空文件夹,os.rmdir删除即可。

1
2
3
4
5
6
7
#Recursively Remove Empty Directories
import os
for root, dirs, files in os.walk(path, topdown=False):
if not files and not dirs:
os.rmdir(root)

阅读全文 »

修改crontab默认编辑器

发表于 2017-08-03 | 阅读次数

crontab -e默认编辑器是nano,使用起来很不习惯,以下三种方法都可修改crontab默认编辑器。

设置VISUAL环境变量然后在执行crontab -e命令

设置corntab编辑器为nano:

1
export VISUAL=nano; crontab -e

设置corntab编辑器为vim:

1
export VISUAL=vim; crontab -e

阅读全文 »

为什么在Python3中print不再是语句而成了函数

发表于 2017-08-01 | 阅读次数

在Python 2中print是语句(statement),而在Python 3中print变成了函数(function)。也就是说Python 2中的print 'hello',在Python 3中需要写成这样print('hello')。可能有人会说我在Python 2中也明明是把print当成函数用的:

1
2
3
4
5
6
7
# python 2
>>> print('hello') #等价于 print ('hello') 也即 print 'hello'
hello
# python 3
>>> print('hello')
hello

阅读全文 »

深入学习python中的with语句

发表于 2017-07-28 | 阅读次数

引言

大家在编程的时候,经常会遇到这样的场景:先执行一些准备操作,然后执行自己的业务逻辑,等业务逻辑完成以后,再执行一些清理操作。比如,打开文件,处理文件内容,最后关闭文件。又如,当多线程程序需要访问临界资源的时候,线程首先需要获取互斥锁,当执行完成并准备退出临界区的时候,需要释放互斥锁。对于这些情况,Python中提供了上下文管理器(Context Manager)的概念,可以通过上下文管理器来控制代码块执行前的准备动作以及执行后的清理动作,with语句就是基于上下文管理器工作的,更简洁的实现了try...finally语句块的功能。

阅读全文 »

BeautifulSoup删除自动添加的html和body标签

发表于 2017-07-21 | 阅读次数

最近用bs4解析html文档时,遇到个问题,当传入BeautifulSoup是一小段html片段时,会自动加上<html>和<body>标签,但实际上,我是不需要自动加的<html>和<body>标签,总结了几种删除他们的方法。

问题描述

1
2
3
4
5
from bs4 import BeautifulSoup
fragment = BeautifulSoup('<div><p>soup 4</p></div>','lxml')
print(fragment)

输出结果是<html><body><div><p>soup 4</p></div></body></html>。

阅读全文 »

Python文件路径查找之glob模块

发表于 2017-07-14 | 阅读次数

python中的glob模块是用来查找匹配文件的,相比os.listdir()其可以支持模式匹配查找(Unix shell中的匹配规则),还支持返回文件绝对路径。Unix shell中的匹配规则如下:

1
2
3
4
* matches everything
? matches any single character
[seq] matches any character in seq
[!seq] matches any char not in seq

阅读全文 »

BeautifulSoup删除html文档中所有属性

发表于 2017-07-14 | 阅读次数

删除html文档中所有属性

1
2
3
4
5
6
7
from bs4 import BeautifulSoup
# remove all attributes
def _remove_all_attrs(soup):
for tag in soup.find_all(True):
tag.attrs = {}
return soup
阅读全文 »

Selenium Chrome 设置带用户名密码的proxy代理

发表于 2017-07-10 | 阅读次数

设置公共的proxy代理方式

由于公共的proxy不设有用户名密码,则可以直接使用chrome options的--proxy-server=ip:port参数启动chrome。

1
2
3
4
5
6
7
8
9
10
11
12
import time
from selenium import webdriver
PROXY = '219.153.76.77:8080'
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server={0}'.format(PROXY))
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get('http://httpbin.org/ip') # 访问一个IP回显网站,查看代理配置是否生效了
print(driver.page_source)
time.sleep(15)
driver.quit()

阅读全文 »
1…567…10
大师兄

大师兄

心有猛虎,细嗅蔷薇

94 日志
31 标签
© 2017 大师兄

备案:京ICP备17054041号

由 Hexo 强力驱动
主题 - NexT.Muse
    |           |