Python第三方库使用相关问题


书籍


python导入

测试代码尽量在上层目录中

Python绝对导入

How to fix “Attempted relative import in non-package” even with init.py

How to fix “Attempted relative import in non-package” even with init.py

Python 的 import 机制

结构化您的工程


feed更新

使用feedparser解析feed

import feedparser
feed_url = "http://export.arxiv.org/rss/cs.CV"
feed_class = feedparser.parse(feed_url)
print feed_class['feed']['title']
print len(feed_class['entries'])
entry0 = feed_class['entries'][0]
# print(entry0.summary)
print(entry0.title)
# print(entry0.author)
entry0.keys()
entry0.title

feedparser

showing list item in python


Newsbeuter

Newsbeuter是ubuntu下的一款feed阅读器,下述命令可以定时刷新feed,设置存储路径,阅览的文章可以存储在本地,默认存储路径为~,设置存储路径为~/GitHub/Quick/newsbeuter,首先在命令行中输入:set save-path ~/GitHub/Quick/newsbeuter,然后按下s即可存储文章。

crontab -e
/usr/bin/newsbeuter -x reload
ls ~/.config/newsbeuter/
ls ~/.local/share/newsbeuter

Newsbeuter定时加载

The Newsbeuter RSS Feedreader


python执行外部脚本文件

Running bash script from within python

import subprocess
subprocess.call("sleep.sh", shell=True)
# 其中存在permission问题,需要设置脚本权限chmod 755 sleep.sh

Permission denied when launch python script via bash


python中HOME目录

在linux或者mac中的~即$HOME目录的获取,在python2.7下使用下述命令。

from os.path import expanduser
HOME_PATH = expanduser('~')

How to get the home directory in Python? [duplicate]


文件移动

dst_dir = os.path.dirname(dst)
if not os.path.exists(dst_dir):
    os.makedirs(dst_dir)
os.rename(src, dst)

python微分库

由于在神经网络中经常使用梯度下降算法,基本神经网络库都会内部集成微分自动推导:

# sudo pip install autograd

获取操作的python版本

import sys
sys.version_info
# sys.version_info(major=2, minor=7, micro=6, releaselevel='final', serial=0)
sys.version
# 2.7.6 (default, Oct 26 2016, 20:30:19)
# [GCC 4.8.4]

进度条使用

从 Python 第三方进度条库 tqdm 谈起


复制文件

shutil.copyfile(src, dst)

Python默认模块os和shutil实用函数


获取求整的整数部分和余数部分

divmod

python字典用法

collections

# defaultdict用来表示默认不存在value,但是插入了key的值
from collections import defaultdict
dd = defaultdict(lambda: 'N/A')
dd['key1'] = 'abc'
dd['key1'] # key1存在
# 输出'abc'
dd['key2'] # key2不存在,返回默认值
# 输出'N/A'

python图像文件truncated

from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True

Python PIL “IOError: image file truncated” with big images


拷贝

图解Python深拷贝和浅拷贝


高阶函数map/reduce

map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。

reduce把一个函数作用在一个序列[x1, x2, x3…]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:

>>> def f(x):
...     return x * x
...
>>> map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
[1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> def add(x, y):
...     return x + y
...
>>> reduce(add, [1, 3, 5, 7, 9])
25

map/reduce


eval的使用

eval将字符串当成有效的表达式来求值并返回计算结果。

在用python处理的输入问题
L=list(eval(raw_input()))

Python:eval的妙用和滥用


python多行输入

单行输入使用raw_input,多行使用多个raw_input即可。

str1 = raw_input()
str2 = raw_input()
str_count = str1.count(str2.lower()) + str1.count(str2.upper())
print(str_count)

python多组同时输入

# 输入:12\n43\n...
import sys
for line in sys.stdin:  # 使用for处理多个输入
    print(line)

牛客网python输入

import sys
try:
    while True:
        line = sys.stdin.readline().strip()
        if line == '':
            break
        lines = line.split()
        print int(lines[0]) + int(lines[1])
except:
    pass

牛客网在线判题系统使用帮助


sympy

用纯Python编写的计算机代数系统。

SymPy是一个符号计算的Python库。它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁、易于理解和扩展。它完全由Python写成,不依赖于外部库。

SymPy支持符号计算、高精度计算、模式匹配、绘图、解方程、微积分、组合数学、离散数学、几何学、概率与统计、物理学等方面的功能。

sympy


python抽象类

import abc

class BasePizza(object):
    __metaclass__  = abc.ABCMeta

    @abc.abstractmethod
    def get_radius(self):
         """Method that should do something."""

如何在Python中正确使用static、class、abstract方法


rgb2hex

def rgb2hex(r,g,b):
    hex = "#{:02x}{:02x}{:02x}".format(r,g,b)
    return hex
def hex2rgb(hexcode):
    rgb = tuple(map(ord,hexcode[1:].decode('hex')))
    return rgb

RGB to Hex Conversion and Hex to RGB Conversion in python


替换某一个值(超过最大值)

np.putmask(a, a >= m, m - 1)

Replacing values greater than a limit in a numpy array


添加椒盐噪声

import skimage

img_src_noise_rgb = skimage.util.random_noise(img_src_rgb, mode='salt')
img_src_noise_rgb = (img_src_noise_rgb * 255).round().astype(np.uint8)

获取文件名

os.path.splitext(os.path.basename(neg_path))[0]

How to get the filename without the extension from a path in Python?


python解析参数

docopt


python工程自动生成requirements.txt

默认会使用requirements.txt来记录工程所需要的第三方依赖,这里使用pipreqs自动生成替代手动添加。

pipreqs $PWD

pipreqs


python中gray到rgb

img = np.array([[1, 2], [3, 4]])
stacked_img = np.stack((img,)*3, -1)
print(stacked_img)

convert a grayscale image to a 3-channel image


计算工程代码量

find . -name '*.py' | xargs wc -l

异常处理

try:
  ...
except e:
  ...

Python 异常处理


时序相关工具包

awesome_time_series_in_python


随机生成颜色

import random

def colors(n):
  ret = []
  r = int(random.random() * 256)
  g = int(random.random() * 256)
  b = int(random.random() * 256)
  step = 256 / n
  for i in range(n):
    r += step
    g += step
    b += step
    r = int(r) % 256
    g = int(g) % 256
    b = int(b) % 256
    ret.append((r,g,b))
  return ret

How do I generate n visually distinct RGB colours in Python?


数据库ORM

sqlalchemy

使用SQLAlchemy


path使用

path.py

“Path” object conveniently wrapping assorted file/path-related functionality