1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import redis ''' 同步Redis数据. 依赖: pip install redis ''' __author__ = "puruidong" ''' ''' source_redis_client = redis.Redis(host='192.168.1.10', port=6379, db=0, password="pass1234567") to_redis_client = redis.Redis(host='192.168.1.12', port=6379, db=0, password="pass1234567") redis_import_arr = ["8001", "8002","8003","8004"] def main(): read_redis_key() def read_redis_key(): for item in redis_import_arr: redis_key = f"gps-service:{item}" redis_value = source_redis_client.get(redis_key) print(redis_value) to_redis_client.set(redis_key, redis_value) if __name__ == '__main__': main() |
分类: Python
Python:一个很有意思的仓库
推荐一个仓库
一个关于Python语言未知特性的仓库,中文,解释很详细.
具体包含了Python2-Python3里面的一些奇怪的问题,有答案,也有解析.
地址是: https://github.com/leisurelicht/wtfpython-cn
Python:发送邮件
发送邮件
之前用Java写过一个发送邮件的,这回来一个Python版本的,参照了廖雪峰(地址)的教程,只是优化了几个地方。
源码
示例中是QQ邮箱,QQ邮箱的SMTP密码是授权码(位置在:设置->账户->SMTP…设置),需要先申请才能用,而且QQ邮箱强制使用SSL,请注意。
#!/usr/bin/env python3 # -*- coding: utf-8 -*- from email import encoders from email.header import Header from email.mime.text import MIMEText from email.utils import parseaddr, formataddr import smtplib # 自己的邮箱地址 from_addr="" # 邮箱密码(有的邮箱可能是使用的授权码) password="" # 发送给谁 to_addr="" # 邮箱的smtp服务器地址 smtp_server="smtp.qq.com" def _format_addr(s): name, addr = parseaddr(s) return formataddr((Header(name, 'utf-8').encode(), addr)) msg = MIMEText('hello, send by Python...', 'plain', 'utf-8') msg['From'] = _format_addr('Python爱好者 <%s>' % from_addr) msg['To'] = _format_addr('管理员 <%s>' % to_addr) msg['Subject'] = Header('来自SMTP的问候……', 'utf-8').encode() server = smtplib.SMTP(smtp_server, 587) # 因为QQ邮箱使用的是SSL,所以必须使用下面这行代码. server.starttls() server.set_debuglevel(1) server.login(from_addr, password) server.sendmail(from_addr, [to_addr], msg.as_string()) server.quit()
Python:替换word中的文本
需要批量替换word中的文本
如题,于是找到了win32com来操作word.
源码
源码如下,部分源码来自网络.
import win32com from win32com.client import Dispatch import os ''' 必要: 1.python 3.6 2.win32com(这个版本与py的版本一致,不是与系统的.必须注意) 1.执行前需打开wps或者word软件(可以不用打开任何文档); 2.本程序执行完之后,wps或者word软件上会显示已经被修改的文档; 3.保存所有文档即可完成替换. ''' if __name__ == '__main__': with os.scandir(".") as it: for entry in it: if not entry.name.startswith('.') and not entry.name.startswith('~') and entry.name.endswith('.doc') and entry.is_file(): filename = os.path.splitext(entry.name)[0] # 会将原文本替换为去掉后缀的文件名. word = Dispatch('Word.Application') doc = word.Documents.Open(entry.name) word.Selection.Find.Execute("原文本", False, False, False, False, False, True, 1, True,filename, 2) print("执行完成")
Python:sublime-text3中提示[DECODE ERROR – OUTPUT NOT UTF-8]
遇到这个问题…
在写了一段py脚本,然后ctrl+b执行的时候提示:decode error – output not utf-8.
偶然,遇到这个问题,捣鼓了一晚上.各种改,后来想起一个解决方案,写在这做个备注.
解决
依次打开:工具->编译系统->新编译系统,把下面的数据贴到里面,然后ctrl+s,保存,名字可以取成python3或者python3build,都可以,不用输入后缀.
把这个地址[D:/Program Files/Python36-32/python.exe]换成你自己的Python.exe的绝对路径.
{ "cmd": ["D:/Program Files/Python36-32/python.exe", "-u", "$file"], "file_regex": "^[ ]File \"(…?)\", line ([0-9]*)", "selector": "source.python", "encoding":"cp936" }
然后保存,在打开工具->编译系统->选择刚才新增的,ctrl+b编译运行就可以了.
附赠一个简单的py脚本:
if __name__ == '__main__': print("123.456.测试")
Golang编译系统的配置如下:
D:\\Go\\bin\\go要换成自己的,Golang只能编译在系统环境变量中配置的GOPATH指定的路径中的.go文件!
{ "shell_cmd": "D:\\Go\\bin\\go run $file", "encoding": "utf-8" }