python实现微信接口——itchat模块

python实现微信接口——itchat模块

安装

  • sudo pip install itchat

登录

  • itchat.auto_login()  这种方法将会通过微信扫描二维码登录,但是这种登录的方式确实短时间的登录,并不会保留登录的状态,也就是下次登录时还是需要扫描二维码,如果加上hotReload==True,那么就会保留登录的状态,至少在后面的几次登录过程中不会再次扫描二维码,该参数生成一个静态文件itchat.pkl用于存储登录状态

退出及登录完成后调用的特定的方法

这里主要使用的是灰调函数的方法,登录完成后的方法需要赋值在 loginCallback 中退出后的方法,需要赋值在 exitCallback 中.若不设置 loginCallback 的值, 将会自动删除二维码图片并清空命令行显示.


import itchat, time
def lc():
    print("Finash Login!")
def ec():
    print("exit")

itchat.auto_login(loginCallback=lc, exitCallback=ec)
time.sleep()
itchat.logout()    #强制退出登录    

回复消息

send

  • send(msg="Text Message", toUserName=None)

参数:

  • msg : 文本消息内容
  • @[email protected]_to_file : 发送文件
  • @[email protected]_to_img : 发送图片
  • @[email protected]_to_video : 发送视频
  • toUserName : 发送对象, 如果留空, 将发送给自己.

返回值

  • True or False

实例代码

# coding-utf-8
import itchat
itchat.auto_login()
itchat.send("Hello World!")
ithcat.send("@[email protected]%s" % ‘/tmp/test.text‘)
ithcat.send("@[email protected]%s" % ‘/tmp/test.png‘)
ithcat.send("@[email protected]%s" % ‘/tmp/test.mkv‘)

send_msg

  • send_msg(msg=‘Text Message‘, toUserName=None),其中的的msg是要发送的文本,toUserName是发送对象, 如果留空, 将发送给自己,返回值为True或者False

实例代码

import itchat
itchat.auto_login()
itchat.send_msg("hello world.")

send_file

  • send_file(fileDir, toUserName=None)  fileDir是文件路径, 当文件不存在时, 将打印无此文件的提醒,返回值为True或者False

实例代码

mport itchat

itchat.auto_login()
itchat.send_file("/tmp/test.txt")

send_image

  • send_image(fileDir, toUserName=None)  参数同上

实例代码


import itchat

itchat.auto_login()
itchat.send_img("/tmp/test.txt")

send_video

  • send_video(fileDir, toUserName=None) 参数同上

实例代码

import itchat

itchat.auto_login()
itchat.send_video("/tmp/test.txt")

注册消息方法

itchat 将根据接受到的消息类型寻找对应的已注册的方法. 如果一个消息类型没有对应的注册方法, 该消息将会被舍弃. 在运行过程中也可以动态注册方法, 注册方式与结果不变.

注册方法

  • 不带具体对象注册, 将注册为普通消息的回复方法.
import itchat
from itchat.content import *
@itchat.msg_register(TEXT)   #这里的TEXT表示如果有人发送文本消息,那么就会调用下面的方法
def simple_reply(msg):
    #这个是向发送者发送消息
    itchat.send_msg(‘已经收到了文本消息,消息内容为%s‘%msg[‘Text‘],toUserName=msg[‘FromUserName‘])
    return "T reveived: %s" % msg["Text"]     #返回的给对方的消息,msg["Text"]表示消息的内容
    
  • 带对象参数注册, 对应消息对象将调用该方法,其中isFriendChat表示好友之间,isGroupChat表示群聊,isMapChat表示公众号
import itchat
from itchat.content import *

@itchat.msg_register(TEXT, isFriendChat=True, isGroupChat=True,isMpChat=True)
def text_reply(msg):
    msg.user.send("%s : %s" % (mst.type, msg.text))
  • 消息类型 向注册方法传入的 msg 包含微信返回的字典的所有内容.itchat 增加 Text, Type(也就是参数) 键值, 方便操作.

itcaht.content 中包含所有的消息类型参数, 如下表

参数 l类型 Text 键值
TEXT 文本 文本内容(文字消息)
MAP 地图 位置文本(位置分享)
CARD 名片 推荐人字典(推荐人的名片)
SHARING 分享 分享名称(分享的音乐或者文章等)
PICTURE        下载方法   图片/表情
RECORDING 语音 下载方法
ATTACHMENT 附件 下载方法
VIDEO 小视频 下载方法
FRIENDS 好友邀请 添加好友所需参数
SYSTEM 系统消息 更新内容的用户或群聊的UserName组成的列表
NOTE 通知 通知文本(消息撤回等)

附件的下载与发送

itchat 的附件下载方法存储在 msgText 键中. 发送的文件名(图片给出的默认文件名), 都存储在 msgFileName 键中. 下载方法, 接受一个可用的位置参数(包括文件名), 并将文件响应的存储. 注意:下载的文件存储在指定的文件中,直接将路径与FileName连接即可,如msg["Text"](‘/tmp/weichat‘+msg[‘FileName‘])

@itchat.msg_register([PICTURE, RECORDING, ATTACHMENT, VIDEO])
def download_files(msg):
    #msg.download(msg[‘FileName‘])   #这个同样是下载文件的方式
    msg[‘Text‘](msg[‘FileName‘])      #下载文件
    #将下载的文件发送给发送者
    itchat.send(‘@%[email protected]%s‘ % (‘img‘ if msg[‘Type‘] == ‘Picture‘ else ‘fil‘, msg["FileName"]), msg["FromUserName"])

群消息

增加了三个键值,如下:

  • isAt 判断是否 @ 本号
  • ActualNickName : 实际 NickName(昵称)
  • Content : 实际 Content

测试程序

import itcaht
from itchat.content import TEXT

@itchat.msg_register(TEXT, isGroupChat=True)
def text_reply(msg):
    if(msg.isAt):    #判断是否有人@自己
    #如果有人@自己,就发一个消息告诉对方我已经收到了信息
    itchat.send_msg("我已经收到了来自{0}的消息,实际内容为{1}".format(msg[‘ActualNickName‘],msg[‘Text‘]),toUserName=msg[‘FromUserName‘])

itchat.auto_login()
itchat.run()

注册消息的优先级

总的来说就是后面注册同种类型的消息会覆盖之前注册的消息,详情见文档https://itchat.readthedocs.io/zh/latest/

消息内容

注意:所有的消息内容都是可以用键值对来访问的,如msg["FromUserName]就是查看发送者,itchat.search_friends(userName=msg[‘FromUserName‘])[‘NickName‘]查看的是当发送者昵称

一般消息

一般的消息都遵循以下的内容:

{
    "FromUserName": "",
    "ToUserName": "",
    "Content": "",
    "StatusNotifyUserName": "",
    "ImgWidth": 0,
    "PlayLength": 0,
    "RecommendInfo": {},
    "StatusNotifyCode": 0,
    "NewMsgId": "",
    "Status": 0,
    "VoiceLength": 0,
    "ForwardFlag": 0,
    "AppMsgType": 0,
    "Ticket": "",
    "AppInfo": {},
    "Url": "",
    "ImgStatus": 0,
    "MsgType": 0,
    "ImgHeight": 0,
    "MediaId": "",
    "MsgId": "",
    "FileName": "",
    "HasProductId": 0,
    "FileSize": "",
    "CreateTime": 0,
    "SubMsgType": 0
}

初始化消息

 MsgType: 51
    FromUserName: 自己ID
    ToUserName: 自己ID
    StatusNotifyUserName: 最近联系的联系人ID
    Content:
        <msg>
            <op id=‘4‘>
                <username>
                    # 最近联系的联系人
                    filehelper,[email protected],wxid_xxx,xxx,...
                </username>
                <unreadchatlist>
                    <chat>
                        <username>
                        # 朋友圈
                            MomentsUnreadMsgStatus
                        </username>
                        <lastreadtime>
                            1454502365
                        </lastreadtime>
                    </chat>
                </unreadchatlist>
                <unreadfunctionlist>
                # 未读的功能账号消息,群发助手,漂流瓶等
                </unreadfunctionlist>
            </op>
        </msg>

文本消息

MsgType: 1
    FromUserName: 发送方ID
    ToUserName: 接收方ID
    Content: 消息内容

图片消息

itchat 增加了 Text 键, 键值为 下载该图片的方法.

MsgType: 3
    FromUserName: 发送方ID
    ToUserName: 接收方ID
    MsgId: 用于获取图片,用于表示每一条消息
    Content:
        <msg>
            <img length="6503" hdlength="0" />
            <commenturl></commenturl>
        </msg>

拓展:如果想要得到Content中的具体内容可以使用正则表达式匹配出来

视频消息

*itchat 增加了 Text 键, 键值为 下载该视频的方法.*

    MsgType: 62
    FromUserName: 发送方ID
    ToUserName: 接收方ID
    MsgId: 用于获取小视频
    Content:
        <msg>
            <img length="6503" hdlength="0" />
            <commenturl></commenturl>
        </msg>

地理位置消息

itchat 增加了 Text 键, 键值为 该地点的文本形式.

MsgType: 1
    FromUserName: 发送方ID
    ToUserName: 接收方ID
    Content: http://weixin.qq.com/cgi-bin/redirectforward?args=xxx

    OriContent:<?xml version="1.0"?>
<msg>
    <location x="34.195278" y="117.177803" scale="16" label="江苏省徐州市铜山区新区海河路" maptype="0" poiname="江苏师范大学大学生公寓园区" />
</msg>

名片消息

itchat 增加了Text 键, 键值为 该调用 add_friend 需要的属性.

 MsgType: 42
    FromUserName: 发送方ID
    ToUserName: 接收方ID
    Content:
        <?xml version="1.0"?>
        <msg bigheadimgurl="" smallheadimgurl="" username="" nickname=""  shortpy="" alias="" imagestatus="3" scene="17" province="" city="" sign="" sex="1" certflag="0" certinfo="" brandIconUrl="" brandHomeUrl="" brandSubscriptConfigUrl="" brandFlags="0" regionCode="" />

    RecommendInfo:
        {
            "UserName": "xxx", # ID,这里的是昵称
            "Province": "xxx",
            "City": "xxx",
            "Scene": 17,
            "QQNum": 0,
            "Content": "",
            "Alias": "xxx", # 微信号
            "OpCode": 0,
            "Signature": "",
            "Ticket": "",
            "Sex": 0, # 1:男, 2:女
            "NickName": "xxx", # 昵称
            "AttrStatus": 4293221,
            "VerifyFlag": 0
        }

下面是添加好友的测试代码

@itchat.msg_register(itchat.content.CARD,isFriendChat=True)
def simply(msg):
    print msg[‘Text‘]
    print msg[‘Content‘]
    itchat.add_friend(userName=msg[‘Text‘][‘UserName‘])  #添加推荐的好友
    print msg[‘RecommendInfo‘]
    print msg[‘RecommendInfo‘][‘UserName‘]

语音消息

*itchat增加了Text键,键值为下载该语音文件的方法,下载下来的是MP3的格式


MsgType: 34
    FromUserName: 发送方ID
    ToUserName: 接收方ID
    MsgId: 用于获取语音
    Content:
        <msg>
            <voicemsg endflag="1" cancelflag="0" forwardflag="0" voiceformat="4" voicelength="1580" length="2026" bufid="216825389722501519" clientmsgid="49efec63a9774a65a932a4e5fcd4e923filehelper174_1454602489" fromusername="" />
        </msg>

下载方法:msg[‘Text‘](msg[‘FileName‘])

动画表情

itchat添加了Text键,键值为下载该图片表情的方法。 注意:本人亲测对于一些微信商店提供的表情是不能下载成功的,这里的自带的表情emoji是属于TEXT类别的,因此如果将其注册为PICTURE消息类型的话是不可以监测到的

  MsgType: 47
    FromUserName: 发送方ID
    ToUserName: 接收方ID
    Content:
        <msg>
            <emoji fromusername = "" tousername = "" type="2" idbuffer="media:0_0" md5="e68363487d8f0519c4e1047de403b2e7" len = "86235" productid="com.tencent.xin.emoticon.bilibili" androidmd5="e68363487d8f0519c4e1047de403b2e7" androidlen="86235" s60v3md5 = "e68363487d8f0519c4e1047de403b2e7" s60v3len="86235" s60v5md5 = "e68363487d8f0519c4e1047de403b2e7" s60v5len="86235" cdnurl = "http://emoji.qpic.cn/wx_emoji/eFygWtxcoMF8M0oCCsksMA0gplXAFQNpiaqsmOicbXl1OC4Tyx18SGsQ/" designerid = "" thumburl = "http://mmbiz.qpic.cn/mmemoticon/dx4Y70y9XctRJf6tKsy7FwWosxd4DAtItSfhKS0Czr56A70p8U5O8g/0" encrypturl = "http://emoji.qpic.cn/wx_emoji/UyYVK8GMlq5VnJ56a4GkKHAiaC266Y0me0KtW6JN2FAZcXiaFKccRevA/" aeskey= "a911cc2ec96ddb781b5ca85d24143642" ></emoji>
            <gameext type="0" content="0" ></gameext>
        </msg>

普通链接或应用分享消息

主要针对的是分享的文章等等

    MsgType: 49
    AppMsgType: 5
    FromUserName: 发送方ID
    ToUserName: 接收方ID
    Url: 链接地址
    FileName: 链接标题
    Content:
        <msg>
            <appmsg appid=""  sdkver="0">
                <title></title>
                <des></des>
                <type>5</type>
                <content></content>
                <url></url>
                <thumburl></thumburl>
                ...
            </appmsg>
            <appinfo>
                <version></version>
                <appname></appname>
            </appinfo>
        </msg>

音乐链接消息

主要针对的是音乐


MsgType: 49
    AppMsgType: 3
    FromUserName: 发送方ID
    ToUserName: 接收方ID
    Url: 链接地址
    FileName: 音乐名

    AppInfo: # 分享链接的应用
        {
            Type: 0,
            AppID: wx485a97c844086dc9
        }

    Content:
        <msg>
            <appmsg appid="wx485a97c844086dc9"  sdkver="0">
                <title></title>
                <des></des>
                <action></action>
                <type>3</type>
                <showtype>0</showtype>
                <mediatagname></mediatagname>
                <messageext></messageext>
                <messageaction></messageaction>
                <content></content>
                <contentattr>0</contentattr>
                <url></url>
                <lowurl></lowurl>
                <dataurl>
                    http://ws.stream.qqmusic.qq.com/C100003i9hMt1bgui0.m4a?vkey=6867EF99F3684&amp;guid=ffffffffc104ea2964a111cf3ff3edaf&amp;fromtag=46
                </dataurl>
                <lowdataurl>
                    http://ws.stream.qqmusic.qq.com/C100003i9hMt1bgui0.m4a?vkey=6867EF99F3684&amp;guid=ffffffffc104ea2964a111cf3ff3edaf&amp;fromtag=46
                </lowdataurl>
                <appattach>
                    <totallen>0</totallen>
                    <attachid></attachid>
                    <emoticonmd5></emoticonmd5>
                    <fileext></fileext>
                </appattach>
                <extinfo></extinfo>
                <sourceusername></sourceusername>
                <sourcedisplayname></sourcedisplayname>
                <commenturl></commenturl>
                <thumburl>
                    http://imgcache.qq.com/music/photo/album/63/180_albumpic_143163_0.jpg
                </thumburl>
                <md5></md5>
            </appmsg>
            <fromusername></fromusername>
            <scene>0</scene>
            <appinfo>
                <version>29</version>
                <appname>摇一摇搜歌</appname>
            </appinfo>
            <commenturl></commenturl>
        </msg>

群消息

itchat 增加了三个群聊相关的键值:

  • isAt : 判断是否 @ 本号
  • ActualNickName : 实际 NickName
  • Content : 实际 Content
MsgType: 1
FromUserName: @@xxx
ToUserName: @xxx
Content:
    @xxx:<br/>xxx

红包消息

 MsgType: 49
    AppMsgType: 2001
    FromUserName: 发送方ID
    ToUserName: 接收方ID
    Content: 未知

系统消息

 MsgType: 10000
    FromUserName: 发送方ID
    ToUserName: 自己ID
    Content:
        "你已添加了 xxx ,现在可以开始聊天了。"
        "如果陌生人主动添加你为朋友,请谨慎核实对方身份。"
        "收到红包,请在手机上查看"

账号类型

tchat 为三种账号都提供了 整体获取方法与搜索方法.

好友

get_friends

  • itchat.get_friends()  返回完整的好友列表
  • 每个好友为一个字典, 其中第一项为本人的账号信息;
  • 传入 update=True, 将更新好友列表并返回, get_friends(update=True)

search_friends

  • itchat.get_friends()   好友搜索,有以下四种方式
  • 仅获取自己的用户信息
# 获取自己的用户信息,返回自己的属性字典
itchat.search_friends()
  • 获取特定 UserName 的用户信息

# 获取特定UserName的用户信息
itchat.search_friends(userName=‘@abcdefg1234567‘) 

## 获取发送信息的好友的详细信息
@itchat.msg_register(itchat.content.TEXT,isFriendChat=True)
def reply(msg):
    print msg[‘FromUserName‘]
    print itchat.search_friends(userName=msg[‘FromUserName‘])   #详细信息
    print itchat.search_friends(userName=msg[‘FromUserName‘])[‘NickName‘]   #获取昵称
  • 获取备注,微信号, 昵称中的任何一项等于name键值的用户. (可以与下一项配置使用.)

比如在我的微信中有一个备注为autolife的人,我可以使用这个方法搜索出详细的信息

# 获取任何一项等于name键值的用户
itchat.search_friends(name=‘autolife‘)
  • 获取备注,微信号, 昵称分别等于相应键值的用户. (可以与上一项配置使用.)
# 获取分别对应相应键值的用户
itchat.search_friends(wechatAccount=‘littlecodersh‘)
# 三、四项功能可以一同使用
itchat.search_friends(name=‘LittleCoder机器人‘, wechatAccount=‘littlecodersh‘)

update_friend

主要用于好友更新

  • 特定用户: 传入用户UserName, 返回指定用户的最新信息.
  • 用户列表: 传入 UserName 组成的列表, 返回用户最新信息组成的列表
memberList = itchat.update_friend(‘@abcdefg1234567‘)

公众号

get_mps

将返回完整的工作号列表

  • 每个公众号为一个字典,
  • 传入 update=True 将更新公众号列表, 并返回.

search_mps

  • 获取特定UserName的公众号
# 获取特定UserName的公众号,返回值为一个字典
itchat.search_mps(userName=‘@abcdefg1234567‘)
  • 获取名字中还有特定字符的公众号.
# 获取名字中含有特定字符的公众号,返回值为一个字典的列表
itchat.search_mps(name=‘LittleCoder‘)
  • 当两项都是勇士, 将仅返回特定UserName的公众号.

群聊

  • get_chatrooms : 返回完整的群聊列表.
  • search_chatrooms : 群聊搜索.
  • update_chatroom : 获取群聊用户列表或更新该群聊.
  • 群聊在首次获取中不会获取群聊的用户列表, 所以需要调用该命令才能获取群聊成员.
  • 传入群聊的 UserName , 返回特定群聊的详细信息.
  • 传入UserName组成的列表, 返回指定用户的最新信息组成的列表.
memberList = itchat.update_chatroom(‘@@abcdefg1234567‘, detailedMember=True)
  • 创建群聊,增加/删除群聊用户:
  • 由于之前通过群聊检测是否被好友拉黑的程序, 目前这三个方法都被严格限制了使用频率.
  • 删除群聊需要本账号为管理员, 否则无效.
  • 将用户加入群聊有直接加入与发送邀请, 通过 useInvitation 设置.
  • 超过 40 人的群聊无法使用直接加入的加入方式.
memberList = itchat.get_frients()[1:]
# 创建群聊, topic 键值为群聊名称.
chatroomUserName = itchat.create_chatroom(memberList, "test chatroom")
# 删除群聊内的用户
itchat.delete_member_from_chatroom(chatroomUserName, memberList[0])
# 增加用户进入群聊.
itchat.add_member_into_chatroom(chatroomUserName, memberList[0], useInvitation=False)

方法汇总

itchat.add_friend
itchat.new_instance
itchat.add_member_into_chatroom
itchat.originInstance
itchat.auto_login
itchat.returnvalues
itchat.check_login
itchat.run
itchat.components
itchat.search_chatrooms
itchat.config
itchat.search_friends
itchat.configured_reply
itchat.search_mps
itchat.content
itchat.send
itchat.core
itchat.send_file
itchat.Core
itchat.send_image
itchat.create_chatroom
itchat.send_msg
itchat.delete_member_from_chatroom
itchat.send_raw_msg
itchat.dump_login_status
itchat.send_video
itchat.get_chatrooms
itchat.set_alias
itchat.get_contact
itchat.set_chatroom_name
itchat.get_friends
itchat.set_logging
itchat.get_head_img
itchat.set_pinned
itchat.get_mps
itchat.show_mobile_login
itchat.get_msg
itchat.start_receiving
itchat.get_QR
itchat.storage
itchat.get_QRuuid
itchat.update_chatroom
itchat.instanceList
itchat.update_friend
itchat.load_login_status
itchat.upload_file
itchat.log
itchat.utils
itchat.login
itchat.VERSION
itchat.logout
itchat.web_init
itchat.msg_register

参考文章

原文地址:https://www.cnblogs.com/GavinSimons/p/8411157.html

时间: 2024-11-06 03:45:57

python实现微信接口——itchat模块的相关文章

python实现微信接口(itchat)

python实现微信接口(itchat) 转载于:https://segmentfault.com/a/1190000009420701#articleHeader37 安装 sudo pip install itchat 登录 itchat.auto_login() 这种方法将会通过微信扫描二维码登录,但是这种登录的方式确实短时间的登录,并不会保留登录的状态,也就是下次登录时还是需要扫描二维码,如果加上hotReload==True,那么就会保留登录的状态,至少在后面的几次登录过程中不会再次扫

Python处理微信利器——itchat

接触itchat是一个偶然,上知乎刷出一个有意思的文章.于是乎运行源码,调错加上查阅博客,发现itchat大有可为. 知乎链接:https://zhuanlan.zhihu.com/p/25782937 获取微信中所有好友信息: 然后还发现可以自己制作一个微信机器人:http://www.cnblogs.com/Erick-L/p/6895514.html 真的是很厉害的一个工具,也让我对个人隐私变得更加担心.Python算是又一次帮我打开一个新世界的大门! 其中itchat的简介及开源源码:h

SAE上用Python开发微信接口用浏览器请求显示internal server error.

处理这个磨蹭了很久,在网上也没有找到解释,所以写下这篇随笔,希望对后来人有所帮助: 如果显示这个,查看SAE的日志,会发现如下: - [2015/01/06 05:33:02] - Traceback (most recent call last): File "/usr/local/sae/python/lib/python2.7/site-packages/web/application.py", line 237, in process return self.handle()

资深程序员教你用Python如何调企业微信接口发送消息!叼的不行!

进入正题 先来几张好玩的图片 首先进入python交互界面,导入我自己写的模块,然后发一个测试消 息,"Hello,小伙伴们好!",然后看看企业号能否收到相应的消息. 那么问题来了,既然可以这么玩,那岂不可以把所有能通知的信息都可以通过python调用接口发送信息了?那当然了,可以把自己感兴趣的用爬虫爬下来,然后发给自己,也可以用于报警等信息,还可以......就看你自己怎么玩吧 上图第一行嘛,就是python解释器的绝对路径,也就是你python的安装路径,自行修改即可.第二行申明编

测试开发系列之Python开发mock接口(一)

本次测试开发系列给大家分享一下怎么用python开发mock接口.本次介绍下什么是mock接口,以及咱们开发之前需要做的准备. 什么是mock接口呢,举个栗子,你在一家电商公司,有查看商品.购物.支付.发货.收获等等等一大堆功能,你是一个测试人员,测测测,测到支付功能的时候,你就要调用第三方支付接口了,真实支付,直接扣你支付宝/微信/银行卡里面的钱了,这下大事不好,测个试还得把自己钱搭进去(当然一般公司都会报销测试的支付费用,但是走报销麻烦),还有一些大额支付的的,可能你账户里面根本就没那么钱,

利用Python制作微信小助手防撤回+自动回复二合一,非常强大!

导语大家新年好呀~今天在家闲来无事,想起来之前好多人吐槽那个微信防撤回的程序不能防止群消息撤回,于是优化了下,顺手把之前微信相关的一些小作品的代码整合了一下,写了个微信小助手,在这里分享给大家.开发工具Python版本:3.6.4相关模块:wxpy模块:itchat模块:argparse模块:pyecharts模块:以及一些Python自带的模块.环境搭建安装Python并添加到环境变量,pip安装需要的相关模块即可.简介微信小助手目前支持以下四项功能. 微信消息防撤回原理:就是把接收到的消息都

Python编写微信打飞机小游戏(一)

最近开始学习Python语言,发现Python有一个神奇的Pygame模块,在编写小游戏时显得非常方便,于是参照教学视频编写了一个微信打飞机的小游戏,网上有很多相关的博客,但都不是很详细,大都是直接贴代码,于是决定沉下心来把编写程序的过程记录下来,与大家分享. 首先声明一点,这篇博客完全参照了小甲鱼的<零基础入门学习Python>教学视频,为了尊重原创,特将原作者的视频地址公布如下:<零基础入门学习Python> Python编译器和Pygame模块的安装网上的教程很多,这里不再赘

Python基础之包与模块

本文和大家分享的主要是python中包与模块相关内容,一起来看看吧,希望对大家学习python有所帮助. 摘要 1. 为重用以及更好的维护代码, Python 使用了模块与包:一个 Python 文件就是一个模块,包是组织模块的特殊目录(包含 __init__.py 文件). 2. 模块搜索路径, Python 解释器在特定的目录中搜索模块,运行时 sys.path 即搜索路径. 3. 使用 import 关键字导入模块,注意 import * 与 __all__ 的关系. 1. 模块与导入 A

java微信接口开发java SpringMVC mybatis 后台框架 集成代码生成器开发利器

获取[下载地址]   QQ: 313596790   [免费支持更新]支持三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体[新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统]A 代码生成器(开发利器);      增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成   就不用写搬砖的代码了,生成的放到项目里,可以直接运行B 阿里巴巴数据库连接池druid