# -*- coding:utf8 -*- # 读文件 # 'rb' 二进制文件(如视频图片) with open(r'E:\test.txt', 'r') as f: s = f.read() print(s) #read() read(size) readline():读取一行 readline():读取全部按行返回list # 写文件 with open(r'E:\test.txt', 'w') as f: s = f.write('wo ai pengziqing') with open(r'E:\test.txt', 'a') as f: s = f.write('wo ai yezhicheng') # StringIO和BytesIO是在内存中操作str和bytes的方法 from io import StringIO f = StringIO() f.write('hello') print(f.getvalue()) from io import BytesIO f = BytesIO() f.write('中文'.encode('utf-8')) print(f.getvalue()) # 操作文件和目录 # 查看当前目录的绝对路径: import os os.path.abspath('.') # 在某个目录下创建一个新目录,首先把新目录的完整路径表示出来: os.path.join('/Users/michael', 'testdir') # 然后创建一个目录: os.mkdir('/Users/michael/testdir') # 删掉一个目录: os.rmdir('/Users/michael/testdir') # os.path.join()函数,把两个路径合成一个时,不要直接拼字符串 # os.path.split()函数,可以把一个路径拆分为两部分,后一部分总是最后级别的目录或文件名 os.path.split('/Users/michael/testdir/file.txt') >>>('/Users/michael/testdir', 'file.txt') # os.path.splitext()可以直接让你得到文件扩展名,很多时候非常方便 os.path.splitext('/path/to/file.txt') # 对文件重命名: os.rename('test.txt', 'test.py') # 删掉文件: os.remove('test.py') # 列出当前目录下的所有目录 [x for x in os.listdir('.') if os.path.isdir(x)] # 列出所有的.py文件 [x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1]=='.py'] # 序列化:把变量从内存中变成可存储或传输的过程称之为序列化 # 反序列化:把变量内容从序列化的对象重新读到内存里称之为反序列化 # pickle模块来实现序列化 import pickle d = dict(name='Bob', age=20, score=88) pickle.dumps(d) # pickle.dumps()方法把任意对象序列化成一个bytes f = open('dump.txt', 'wb') pickle.dump(d, f) f.close() # 用pickle.loads()方法反序列化出对象,也可以直接用pickle.load()方法从一个file-like Object中直接反序列化出对象 f = open('dump.txt', 'rb') d = pickle.load(f) f.close() # json:把对象序列化为标准格式 import json d = dict(name='Bob', age=20, score=88) json.dumps(d) # 用loads()或者对应的load()方法,前者把JSON的字符串反序列化,后者从file-like Object中读取字符串并反序列化 # 序列化类实例 def student2dict(std): # 先把实例用一个转换函数转换 return { 'name': std.name, 'age': std.age, 'score': std.score } print(json.dumps(s, default=student2dict)) # default就是把任意一个对象变成一个可序列为JSON的对象 # 获取当前日期和时间 from datetime import datetime now = datetime.now() # 获取当前datetime print(now) # 获取指定日期和时间 from datetime import datetime dt = datetime(2015, 4, 19, 12, 20) # 用指定日期时间创建datetime print(dt) # str转换为datetime from datetime import datetime cday = datetime.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S') print(cday) # datetime转换为str from datetime import datetime now = datetime.now() print(now.strftime('%a, %b %d %H:%M')) # urllib from urllib import request with request.urlopen('https://api.douban.com/v2/book/2129650') as f: data = f.read() print('Status:', f.status, f.reason) for k, v in f.getheaders(): print('%s: %s' % (k, v)) print('Data:', data.decode('utf-8')) # 利用urllib读取JSON,然后将JSON解析为Python对象 from urllib import request import json def fetch_data(url): with request.urlopen(url) as f: data = f.read() return json.loads(data) # 操作图像 from PIL import Image # 打开一个jpg图像文件,注意是当前路径: im = Image.open('test.jpg') # 获得图像尺寸: w, h = im.size print('Original image size: %sx%s' % (w, h)) # 缩放到50%: im.thumbnail((w//2, h//2)) print('Resize image to: %sx%s' % (w//2, h//2)) # 把缩放后的图像用jpeg格式保存: im.save('thumbnail.jpg', 'jpeg') from PIL import Image, ImageFilter # 打开一个jpg图像文件,注意是当前路径: im = Image.open('test.jpg') # 应用模糊滤镜: im2 = im.filter(ImageFilter.BLUR) im2.save('blur.jpg', 'jpeg') # 打开一个jpg图像文件,注意是当前路径: im = Image.open('test.jpg') # 获得图像尺寸: w, h = im.size print('Original image size: %sx%s' % (w, h)) # 缩放到50%: im.thumbnail((w//2, h//2)) print('Resize image to: %sx%s' % (w//2, h//2)) # 把缩放后的图像用jpeg格式保存: im.save('thumbnail.jpg', 'jpeg') from PIL import Image, ImageDraw, ImageFont, ImageFilter import random # 随机字母: def rndChar(): return chr(random.randint(65, 90)) # 随机颜色1: def rndColor(): return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255)) # 随机颜色2: def rndColor2(): return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127)) # 240 x 60: width = 60 * 4 height = 60 image = Image.new('RGB', (width, height), (255, 255, 255)) # 创建Font对象: font = ImageFont.truetype('Arial.ttf', 36) # 创建Draw对象: draw = ImageDraw.Draw(image) # 填充每个像素: for x in range(width): for y in range(height): draw.point((x, y), fill=rndColor()) # 输出文字: for t in range(4): draw.text((60 * t + 10, 10), rndChar(), font=font, fill=rndColor2()) # 模糊: image = image.filter(ImageFilter.BLUR) image.save('code.jpg', 'jpeg')
[Python笔记 廖雪峰]
猜你喜欢
转载自blog.csdn.net/Daisy_fight/article/details/80610435
今日推荐
周排行