4 篇文章带有标签 “Python 实践”

Python实践

  • 不可变参数
>>> def func(x):
...     x=2
... 
>>> n=1
>>> func(n)
>>> n
1
  • 可变参数
>>> def func(x):
...     x.append(2)
... 
>>> l=[1]
>>> func(l)
>>> l
[1, 2]
  • 最佳实践(不管参数是可变还是不可变,明确地返回值。)
>>> def func(x):
...     pass
...     return x
... 
>>> n=1
>>> n = func(n)
>>> n
1

出于对性能优化的考虑,Python 内部会对 -5 到 256 的整型维持一个数组,起到一个缓存的作用。这样,每次试图创建一个 -5 到 256 范围内的整型数字时,Python 都会从这个数组中返回相对应的引用,而不是重新开辟一块新的内存空间。如果整型数字超出了这个范围,Python 则会每次使用都使用新的内存区域。

Python爬虫实践

在头信息中加入 User-Agent 来解决。在 Safari 浏览器中通过选择菜单[开发]->[显示JavaScript控制台],然后选择[网络]->[文稿]->[标头],在内容里的[请求]节可以找到 User-Agent。

import requests

url = "https://movie.douban.com/cinema/later/beijing/"
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15'}
page = requests.get(url, headers=headers)
print(page.status_code)
200

Python文件、目录、路径操作

  • 方法2
def touch(path):
    with open(path, 'a'):
        os.utime(path, None)
  • 方法3

OS X需要root特权

os.mknod(filename)
  • 多级目录
>>> os.makedirs('dirs/sub_dir')
  • 列出文件和目录
>>> os.listdir('/home/python')
['app', 'config', 'main.py', 'test']
  • 多级目录
>>> shutil.rmtree('/home/python')