全域變數 urllib模組 json模組

來源:互聯網
上載者:User

標籤:print   arm   拼接   webx   import   pen   rtti   格式   檔案的   

 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 osprint(__file__)                                #當前路徑print(os.path.dirname(__file__))      #上一級目錄C:/Users/lenovo/PycharmProjects/老男孩/pppppppp.pyC:/Users/lenovo/PycharmProjects/老男孩 

 把一個路徑匯入到sys.pash中

import os,sysprint(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.pyC:/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 ppppppppprint(__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 jsona="[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 jsona=[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 jsona=[1,2,3,4]b=json.dump(a,open("db","a"))

json.load()把一個檔案中的字串以字典或列表的形式讀出來

import jsonb=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地址並擷取傳回值aa.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 requestsa=requests.get(‘http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx/getDetailInfoByTrainCode?TrainCode=k234&UserID=‘)a.encoding="utf-8"b=a.textprint(b)from xml.etree import ElementTree as fa=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迴圈)。
 
 View Code
import requestsa=requests.get("http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx/getDetailInfoByTrainCode?TrainCode=K234&UserID=")a.encoding="utf-8"b=a.textprint(b)from xml.etree import ElementTree as fc=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)上海(車次:K234\K235) 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

 

全域變數 urllib模組 json模組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.