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
    
  • 相关阅读:
    LeetCode 123. Best Time to Buy and Sell Stock III (stock problem)
    精帖转载(关于stock problem)
    LeetCode 122. Best Time to Buy and Sell Stock II (stock problem)
    LeetCode 121. Best Time to Buy and Sell Stock (stock problem)
    LeetCode 120. Triangle
    基于docker 搭建Elasticsearch5.6.4 分布式集群
    从零开始构建一个centos+jdk7+tomcat7的docker镜像文件
    Harbor实现容器镜像仓库的管理和运维
    docker中制作自己的JDK+tomcat镜像
    docker镜像制作---jdk7+tomcat7基础镜像
  • 原文地址:https://www.cnblogs.com/luxiaojun/p/5524856.html
Copyright © 2011-2022 走看看