zoukankan      html  css  js  c++  java
  • 全局变量 urllib模块 json模块

     1、vars()  查看一个.py文件中的全局变量

    print(vars())     #重点  __name__': '__main__            '__file__': 'C:/Users/lenovo/PycharmProjects/老男孩/pppppppp.py'  
    
    {'__spec__': None, '__name__': '__main__', '__builtins__': <module 'builtins' (built-in)>, '__file__': 'C:/Users/lenovo/PycharmProjects/老男孩/pppppppp.py',
    '__package__': None, '__cached__': None, '__doc__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000000AFF7E53E10>}

    1>  __doc__ 查看.py文件的注释

    2> __file__ 本身.py文件的绝对路径

    import os
    print(__file__)                                #当前路径
    print(os.path.dirname(__file__))      #上一级目录
    
    C:/Users/lenovo/PycharmProjects/老男孩/pppppppp.py
    C:/Users/lenovo/PycharmProjects/老男孩 
    

     把一个路径导入到sys.pash中

    import os,sys
    print(sys.path)            #查看导入模块时所寻找的路径
    print(__file__)
    a=os.path.dirname(__file__)      #利用__file__获取当前文件的绝对路径
    print(os.path.dirname(__file__))   #利用os.pash.dirname(__file__路径)得到当前绝对路径的上一级目录
    print(os.path.join(a,"mokuai"))    #利用os.pash.join()把俩个路径拼接起来
    b=os.path.join(a,"mokuai")
    sys.path.append(b)           #把拼接后的路径加到寻找模块时查看的路径中
    print(sys.path)             #查看当前需要导入模块时所寻找的路径
    
    
    ['C:\Users\lenovo\PycharmProjects\老男孩', 'C:\Users\lenovo\PycharmProjects\老男孩', 'E:\Python35\python35.zip', 'E:\Python35\DLLs', 'E:\Python35\lib', 'E:\Python35', 'E:\Python35\lib\site-packages']
    C:/Users/lenovo/PycharmProjects/老男孩/pppppppp.py
    C:/Users/lenovo/PycharmProjects/老男孩
    C:/Users/lenovo/PycharmProjects/老男孩mokuai
    ['C:\Users\lenovo\PycharmProjects\老男孩', 'C:\Users\lenovo\PycharmProjects\老男孩', 'E:\Python35\python35.zip', 'E:\Python35\DLLs', 'E:\Python35\lib', 'E:\Python35', 'E:\Python35\lib\site-packages', 'C:/Users/lenovo/PycharmProjects/老男孩\mokuai']
    

    3>__name__ 如果是在自己的.py文件中__name__=="__main__",而如果是在一个文件中导入另外一个文件的话,打印另外一个文件的__name__就成了那个文件的文件名

    常利用__name__=="__main__"来定义一个主文件

    import pppppppp
    print(__name__)
    print(pppppppp.__name__)
    
    __main__
    pppppppp
    

     定义主文件

    if __name__=="__main__":
        print("123")
    

     2、urllib模块

    import urllib                    #导入urllib模块
    from urllib import request    #导入urllib中request方法            f=request.urlopen("http://ing.cnblogs.com/")  #输入网址发送请求 a=f.read().decode("utf-8")            #输入并编码 print(a)

     查询各地天气的代码

    import urllib                    #导入urllib模块
    from urllib import request                  #导入urllib中request方法           
    f=request.urlopen("http://www.weather.com.cn/adat/sk/101050101.html")  #输入网址发送请求
    a=f.read().decode("utf-8")            #输入并编码
    print(a)
    

    3、json模块

    json,用于字符串 和 python数据类型间进行转换

    Json模块提供了四个功能:dumps、dump、loads、load

    json.loads()用于将字符串形式的字典,列表转换成相应的字典,列表(元祖不可以,应为其他语言中没用元祖)

    import json
    a="[1,2,3,4]"
    b='{"k1":1,"k2":2}'      #当字符串为字典时{}外面必须是''单引号{}里面必须是""双引号
    print(json.loads(a))
    print(b)
    
    [1, 2, 3, 4]
    {"k1":1,"k2":2}
    

    json.dumps()字典,列表转换成相应的字符串(元祖转换的时候转成字符串形式的列表)

    import json
    a=[1,2,3,4]
    b={"k1":1,"k2":2}
    print(json.dumps(a))
    print(json.dumps(b))
    
    [1, 2, 3, 4]
    {"k1": 1, "k2": 2}
    

     json.dump()把一个字典或列表写到一个文件中写成字符串的形式

    import json
    a=[1,2,3,4]
    b=json.dump(a,open("db","a"))
    

    json.load()把一个文件中的字符串以字典或列表的形式读出来

    import json
    b=json.load(open("db","r"))
    print(b)
    

     4.request(请求的意思)

    用于发送http请求的,用python模拟浏览器浏览网页

    import requests                                  #导入request模块
    a=requests.get("http://www.weather.com.cn/adat/sk/101050101.html")    #发送url地址并获取返回值a
    a.encoding="utf-8"                                #把获取到的内容进行编码
    b=a.text                                      #text返回的内容
    print(b)
    

     5、XML

    获取QQ是否在线

    import requests                                                          #导入request模块
    a=requests.get('http://www.webxml.com.cn//webservices/qqOnlineWebService.asmx/qqCheckOnline?qqCode=424662508') #发送请求并获取返回值
    a.encoding="utf-8"                                                        #编码
    b=a.text                                                              #读出内容
    print(b)                                                              #查看读出的内容属于什么类型
    from xml.etree import ElementTree as f                                            #获取的字符串是xml格式的所以用xml方法
    a=f.XML(b)                                                             #用xml进行提取内容
    c=a.text                                                              #提取到内容后进行读取
    print(c)
    
    <?xml version="1.0" encoding="utf-8"?>
    <string xmlns="http://WebXml.com.cn/">Y</string>
    Y
    

     列车时刻表

    import requests
    a=requests.get('http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx/getDetailInfoByTrainCode?TrainCode=k234&UserID=')
    a.encoding="utf-8"
    b=a.text
    print(b)
    from xml.etree import ElementTree as f
    a=f.XML(b)
    print(a.tag)                     #获取第一个节点的标签 for i in a.iter("TrainDetailInfo"):       #找到某一类节点进行循环 通过iter迭代TrainDetailInfo  我们可以把它看成一个列表 print(i)                     #通过打印获取一个迭代的对象 print(i.tag,i.attrib)             #i.tag是获取节点的标签,i.attrib是获取标签的属性 print(i.find("TrainStation").text)     #在TrainDetailInfo节点下找TrainStation标签 print(i.find("StartTime").text)       #在TrainDetailInfo节点下找StartTime标签



    def iter(self, tag=None):
      在当前节点的子孙中根据节点名称寻找所有指定的节点,并返回一个迭代器(可以被for循环)。
     
    <?xml version="1.0" encoding="utf-8"?>
    <DataSet xmlns="http://WebXml.com.cn/">
      <xs:schema id="getDetailInfo" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
        <xs:element name="getDetailInfo" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
          <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element name="TrainDetailInfo">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="TrainStation" type="xs:string" minOccurs="0" />
                    <xs:element name="ArriveTime" type="xs:string" minOccurs="0" />
                    <xs:element name="StartTime" type="xs:string" minOccurs="0" />
                    <xs:element name="KM" type="xs:short" minOccurs="0" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:choice>
          </xs:complexType>
        </xs:element>
      </xs:schema>
      <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
        <getDetailInfo xmlns="">
          <TrainDetailInfo diffgr:id="TrainDetailInfo1" msdata:rowOrder="0" diffgr:hasChanges="inserted">
            <TrainStation>上海(车次:K234K235)</TrainStation>
            <ArriveTime />
            <StartTime>11:12:00</StartTime>
            <KM>0</KM>
          </TrainDetailInfo>
          <TrainDetailInfo diffgr:id="TrainDetailInfo2" msdata:rowOrder="1" diffgr:hasChanges="inserted">
            <TrainStation>昆山</TrainStation>
            <ArriveTime>11:45:00</ArriveTime>
            <StartTime>11:48:00</StartTime>
            <KM>49</KM>
          </TrainDetailInfo>
          <TrainDetailInfo diffgr:id="TrainDetailInfo3" msdata:rowOrder="2" diffgr:hasChanges="inserted">
            <TrainStation>苏州</TrainStation>
            <ArriveTime>12:12:00</ArriveTime>
            <StartTime>12:16:00</StartTime>
            <KM>84</KM>
          </TrainDetailInfo>
          <TrainDetailInfo diffgr:id="TrainDetailInfo4" msdata:rowOrder="3" diffgr:hasChanges="inserted">
            <TrainStation>无锡</TrainStation>
            <ArriveTime>12:44:00</ArriveTime>
            <StartTime>12:55:00</StartTime>
            <KM>126</KM>
          </TrainDetailInfo>
          <TrainDetailInfo diffgr:id="TrainDetailInfo5" msdata:rowOrder="4" diffgr:hasChanges="inserted">
            <TrainStation>常州</TrainStation>
            <ArriveTime>13:22:00</ArriveTime>
            <StartTime>13:26:00</StartTime>
            <KM>165</KM>
          </TrainDetailInfo>
          <TrainDetailInfo diffgr:id="TrainDetailInfo6" msdata:rowOrder="5" diffgr:hasChanges="inserted">
            <TrainStation>镇江</TrainStation>
            <ArriveTime>14:13:00</ArriveTime>
            <StartTime>14:16:00</StartTime>
            <KM>237</KM>
          </TrainDetailInfo>
          <TrainDetailInfo diffgr:id="TrainDetailInfo7" msdata:rowOrder="6" diffgr:hasChanges="inserted">
            <TrainStation>南京</TrainStation>
            <ArriveTime>15:04:00</ArriveTime>
            <StartTime>15:16:00</StartTime>
            <KM>301</KM>
          </TrainDetailInfo>
          <TrainDetailInfo diffgr:id="TrainDetailInfo8" msdata:rowOrder="7" diffgr:hasChanges="inserted">
            <TrainStation>蚌埠</TrainStation>
            <ArriveTime>17:27:00</ArriveTime>
            <StartTime>17:50:00</StartTime>
            <KM>485</KM>
          </TrainDetailInfo>
          <TrainDetailInfo diffgr:id="TrainDetailInfo9" msdata:rowOrder="8" diffgr:hasChanges="inserted">
            <TrainStation>徐州</TrainStation>
            <ArriveTime>19:38:00</ArriveTime>
            <StartTime>19:58:00</StartTime>
            <KM>649</KM>
          </TrainDetailInfo>
          <TrainDetailInfo diffgr:id="TrainDetailInfo10" msdata:rowOrder="9" diffgr:hasChanges="inserted">
            <TrainStation>商丘</TrainStation>
            <ArriveTime>22:12:00</ArriveTime>
            <StartTime>22:17:00</StartTime>
            <KM>795</KM>
          </TrainDetailInfo>
          <TrainDetailInfo diffgr:id="TrainDetailInfo11" msdata:rowOrder="10" diffgr:hasChanges="inserted">
            <TrainStation>开封</TrainStation>
            <ArriveTime>23:49:00</ArriveTime>
            <StartTime>23:53:00</StartTime>
            <KM>926</KM>
          </TrainDetailInfo>
          <TrainDetailInfo diffgr:id="TrainDetailInfo12" msdata:rowOrder="11" diffgr:hasChanges="inserted">
            <TrainStation>郑州</TrainStation>
            <ArriveTime>00:37:00</ArriveTime>
            <StartTime>01:14:00</StartTime>
            <KM>998</KM>
          </TrainDetailInfo>
          <TrainDetailInfo diffgr:id="TrainDetailInfo13" msdata:rowOrder="12" diffgr:hasChanges="inserted">
            <TrainStation>新乡</TrainStation>
            <ArriveTime>02:20:00</ArriveTime>
            <StartTime>02:22:00</StartTime>
            <KM>1078</KM>
          </TrainDetailInfo>
          <TrainDetailInfo diffgr:id="TrainDetailInfo14" msdata:rowOrder="13" diffgr:hasChanges="inserted">
            <TrainStation>鹤壁</TrainStation>
            <ArriveTime>03:01:00</ArriveTime>
            <StartTime>03:03:00</StartTime>
            <KM>1144</KM>
          </TrainDetailInfo>
          <TrainDetailInfo diffgr:id="TrainDetailInfo15" msdata:rowOrder="14" diffgr:hasChanges="inserted">
            <TrainStation>安阳</TrainStation>
            <ArriveTime>03:33:00</ArriveTime>
            <StartTime>03:36:00</StartTime>
            <KM>1185</KM>
          </TrainDetailInfo>
          <TrainDetailInfo diffgr:id="TrainDetailInfo16" msdata:rowOrder="15" diffgr:hasChanges="inserted">
            <TrainStation>邯郸</TrainStation>
            <ArriveTime>04:11:00</ArriveTime>
            <StartTime>04:16:00</StartTime>
            <KM>1245</KM>
          </TrainDetailInfo>
          <TrainDetailInfo diffgr:id="TrainDetailInfo17" msdata:rowOrder="16" diffgr:hasChanges="inserted">
            <TrainStation>邢台</TrainStation>
            <ArriveTime>04:47:00</ArriveTime>
            <StartTime>04:51:00</StartTime>
            <KM>1297</KM>
          </TrainDetailInfo>
          <TrainDetailInfo diffgr:id="TrainDetailInfo18" msdata:rowOrder="17" diffgr:hasChanges="inserted">
            <TrainStation>石家庄</TrainStation>
            <ArriveTime>06:05:00</ArriveTime>
            <StartTime />
            <KM>1406</KM>
          </TrainDetailInfo>
        </getDetailInfo>
      </diffgr:diffgram>
    </DataSet>
    <Element 'TrainDetailInfo' at 0x000000E68985D2C8>
    TrainDetailInfo {'{urn:schemas-microsoft-com:xml-diffgram-v1}hasChanges': 'inserted', '{urn:schemas-microsoft-com:xml-diffgram-v1}id': 'TrainDetailInfo1', '{urn:schemas-microsoft-com:xml-msdata}rowOrder': '0'}
    上海(车次:K234K235)
    11:12:00
    <Element 'TrainDetailInfo' at 0x000000E68985D458>
    TrainDetailInfo {'{urn:schemas-microsoft-com:xml-diffgram-v1}hasChanges': 'inserted', '{urn:schemas-microsoft-com:xml-diffgram-v1}id': 'TrainDetailInfo2', '{urn:schemas-microsoft-com:xml-msdata}rowOrder': '1'}
    昆山
    11:48:00
    <Element 'TrainDetailInfo' at 0x000000E68985D5E8>
    TrainDetailInfo {'{urn:schemas-microsoft-com:xml-diffgram-v1}hasChanges': 'inserted', '{urn:schemas-microsoft-com:xml-diffgram-v1}id': 'TrainDetailInfo3', '{urn:schemas-microsoft-com:xml-msdata}rowOrder': '2'}
    苏州
    12:16:00
    <Element 'TrainDetailInfo' at 0x000000E68985D778>
    TrainDetailInfo {'{urn:schemas-microsoft-com:xml-diffgram-v1}hasChanges': 'inserted', '{urn:schemas-microsoft-com:xml-diffgram-v1}id': 'TrainDetailInfo4', '{urn:schemas-microsoft-com:xml-msdata}rowOrder': '3'}
    无锡
    12:55:00
    <Element 'TrainDetailInfo' at 0x000000E68985D908>
    TrainDetailInfo {'{urn:schemas-microsoft-com:xml-diffgram-v1}hasChanges': 'inserted', '{urn:schemas-microsoft-com:xml-diffgram-v1}id': 'TrainDetailInfo5', '{urn:schemas-microsoft-com:xml-msdata}rowOrder': '4'}
    常州
    13:26:00
    <Element 'TrainDetailInfo' at 0x000000E68985DA98>
    TrainDetailInfo {'{urn:schemas-microsoft-com:xml-diffgram-v1}hasChanges': 'inserted', '{urn:schemas-microsoft-com:xml-diffgram-v1}id': 'TrainDetailInfo6', '{urn:schemas-microsoft-com:xml-msdata}rowOrder': '5'}
    镇江
    14:16:00
    <Element 'TrainDetailInfo' at 0x000000E68985DC28>
    TrainDetailInfo {'{urn:schemas-microsoft-com:xml-diffgram-v1}hasChanges': 'inserted', '{urn:schemas-microsoft-com:xml-diffgram-v1}id': 'TrainDetailInfo7', '{urn:schemas-microsoft-com:xml-msdata}rowOrder': '6'}
    南京
    15:16:00
    <Element 'TrainDetailInfo' at 0x000000E68985DDB8>
    TrainDetailInfo {'{urn:schemas-microsoft-com:xml-diffgram-v1}hasChanges': 'inserted', '{urn:schemas-microsoft-com:xml-diffgram-v1}id': 'TrainDetailInfo8', '{urn:schemas-microsoft-com:xml-msdata}rowOrder': '7'}
    蚌埠
    17:50:00
    <Element 'TrainDetailInfo' at 0x000000E68985DF48>
    TrainDetailInfo {'{urn:schemas-microsoft-com:xml-diffgram-v1}hasChanges': 'inserted', '{urn:schemas-microsoft-com:xml-diffgram-v1}id': 'TrainDetailInfo9', '{urn:schemas-microsoft-com:xml-msdata}rowOrder': '8'}
    徐州
    19:58:00
    <Element 'TrainDetailInfo' at 0x000000E68986A138>
    TrainDetailInfo {'{urn:schemas-microsoft-com:xml-diffgram-v1}hasChanges': 'inserted', '{urn:schemas-microsoft-com:xml-diffgram-v1}id': 'TrainDetailInfo10', '{urn:schemas-microsoft-com:xml-msdata}rowOrder': '9'}
    商丘
    22:17:00
    <Element 'TrainDetailInfo' at 0x000000E68986A2C8>
    TrainDetailInfo {'{urn:schemas-microsoft-com:xml-diffgram-v1}hasChanges': 'inserted', '{urn:schemas-microsoft-com:xml-diffgram-v1}id': 'TrainDetailInfo11', '{urn:schemas-microsoft-com:xml-msdata}rowOrder': '10'}
    开封
    23:53:00
    <Element 'TrainDetailInfo' at 0x000000E68986A458>
    TrainDetailInfo {'{urn:schemas-microsoft-com:xml-diffgram-v1}hasChanges': 'inserted', '{urn:schemas-microsoft-com:xml-diffgram-v1}id': 'TrainDetailInfo12', '{urn:schemas-microsoft-com:xml-msdata}rowOrder': '11'}
    郑州
    01:14:00
    <Element 'TrainDetailInfo' at 0x000000E68986A5E8>
    TrainDetailInfo {'{urn:schemas-microsoft-com:xml-diffgram-v1}hasChanges': 'inserted', '{urn:schemas-microsoft-com:xml-diffgram-v1}id': 'TrainDetailInfo13', '{urn:schemas-microsoft-com:xml-msdata}rowOrder': '12'}
    新乡
    02:22:00
    <Element 'TrainDetailInfo' at 0x000000E68986A778>
    TrainDetailInfo {'{urn:schemas-microsoft-com:xml-diffgram-v1}hasChanges': 'inserted', '{urn:schemas-microsoft-com:xml-diffgram-v1}id': 'TrainDetailInfo14', '{urn:schemas-microsoft-com:xml-msdata}rowOrder': '13'}
    鹤壁
    03:03:00
    <Element 'TrainDetailInfo' at 0x000000E68986A908>
    TrainDetailInfo {'{urn:schemas-microsoft-com:xml-diffgram-v1}hasChanges': 'inserted', '{urn:schemas-microsoft-com:xml-diffgram-v1}id': 'TrainDetailInfo15', '{urn:schemas-microsoft-com:xml-msdata}rowOrder': '14'}
    安阳
    03:36:00
    <Element 'TrainDetailInfo' at 0x000000E68986AA98>
    TrainDetailInfo {'{urn:schemas-microsoft-com:xml-diffgram-v1}hasChanges': 'inserted', '{urn:schemas-microsoft-com:xml-diffgram-v1}id': 'TrainDetailInfo16', '{urn:schemas-microsoft-com:xml-msdata}rowOrder': '15'}
    邯郸
    04:16:00
    <Element 'TrainDetailInfo' at 0x000000E68986AC28>
    TrainDetailInfo {'{urn:schemas-microsoft-com:xml-diffgram-v1}hasChanges': 'inserted', '{urn:schemas-microsoft-com:xml-diffgram-v1}id': 'TrainDetailInfo17', '{urn:schemas-microsoft-com:xml-msdata}rowOrder': '16'}
    邢台
    04:51:00
    <Element 'TrainDetailInfo' at 0x000000E68986ADB8>
    TrainDetailInfo {'{urn:schemas-microsoft-com:xml-diffgram-v1}hasChanges': 'inserted', '{urn:schemas-microsoft-com:xml-diffgram-v1}id': 'TrainDetailInfo18', '{urn:schemas-microsoft-com:xml-msdata}rowOrder': '17'}
    石家庄
    None
    View Code
    import requests
    a=requests.get("http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx/getDetailInfoByTrainCode?TrainCode=K234&UserID=")
    a.encoding="utf-8"
    b=a.text
    print(b)
    from xml.etree import ElementTree as f
    c=f.XML(b)
    for i in c.iter("TrainDetailInfo"):
        print(i)
        print(i.tag,i.attrib)
        print(i.find("TrainStation").text,i.find("ArriveTime").text,i.find("StartTime").text,i.find("KM").text)
    
    上海(车次:K234K235) None 11:12:00 0
    昆山 11:45:00 11:48:00 49
    苏州 12:12:00 12:16:00 84
    无锡 12:44:00 12:55:00 126
    常州 13:22:00 13:26:00 165
    镇江 14:13:00 14:16:00 237
    南京 15:04:00 15:16:00 301
    蚌埠 17:27:00 17:50:00 485
    徐州 19:38:00 19:58:00 649
    商丘 22:12:00 22:17:00 795
    开封 23:49:00 23:53:00 926
    郑州 00:37:00 01:14:00 998
    新乡 02:20:00 02:22:00 1078
    鹤壁 03:01:00 03:03:00 1144
    安阳 03:33:00 03:36:00 1185
    邯郸 04:11:00 04:16:00 1245
    邢台 04:47:00 04:51:00 1297
    石家庄 06:05:00 None 1406
    
  • 相关阅读:
    【Vue前端】Vue前端注册业务实现!!!【代码】
    QQ第三方登录逻辑(微信,微博等同)
    发送短信验证码逻辑
    web图形验证码逻辑
    PID算法资料【视频+PDF介绍】
    如何配置电脑本地的域名
    js实现阻止默认事件preventDefault与returnValue
    js实现事件监听与阻止监听传播
    json字符串转换对象的方法1
    json字符串转换对象的方法
  • 原文地址:https://www.cnblogs.com/luxiaojun/p/5524856.html
Copyright © 2011-2022 走看看