日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 学习 [day6]

發布時間:2025/3/15 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 学习 [day6] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

遞歸階乘:

函數自己調用自己循環操作的模式稱之為遞歸

def func(num):if num == 1:return 1return num * func(num - 1)print(func(7)) 遞歸階乘

反射:

含義:通過字符串的形式去對象(模塊)中操作(尋找/檢查/刪除/設置)成員

通過字符串形式調用模塊方法 使用getattr()

通過字符串形式調用模塊 采用__import__("inp", fromlist=Ture) ?fromlist參數傳輸什么路徑就倒入什么路徑,如果沒有該參數,將無法導入inp.account類型

hasattr(對象, 字符串) 檢查對象中是否存在匹配字符串的方法,存在 返回True 不存在返回Falsefunc = getattr(對象, 字符串) 將對象中匹配字符串的函數體賦值給func對象,在通過func()執行函數setattr(對象, 字符串, 值) 在對象中插入函數delattr(對象, 字符串) 刪除對象中字符串匹配的函數體 #run函數 根據用戶輸入(commands/login),完成倒入commands模塊并執行login方法; def run():inp = input("請輸入要訪問的url")m, f = inp.split("/")if hasattr(m, f):func = getattr(m, f)func()else:print('404') 字符串調用函數

?

模塊中的特殊變量

__name__ #當執行當前文件時當前文件的特殊變量__name__ == '__main__',否則__name__不等于__main____file__ #獲取當前之行腳本的相對路徑os.path.abspath(__file__) #獲取文件的絕對路徑os.path.dirname("dir/file") #文件或目錄的上級目錄

sys模塊

sys.argv 命令行參數List,第一個元素是程序本身路徑 sys.exit(n) 退出程序,正常退出時exit(0) sys.version 獲取Python解釋程序的版本信息 sys.maxint 最大的Int值 sys.path 返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變量的值 sys.platform 返回操作系統平臺名稱 sys.stdin 輸入相關 sys.stdout 輸出相關 sys.stderror 錯誤相關

os模塊

os.getcwd() 獲取當前工作目錄,即當前python腳本工作的目錄路徑 os.chdir("dirname") 改變當前腳本工作目錄;相當于shell下cd os.curdir 返回當前目錄: ('.') os.pardir 獲取當前目錄的父目錄字符串名:('..') os.makedirs('dir1/dir2') 可生成多層遞歸目錄 os.removedirs('dirname1') 若目錄為空,則刪除,并遞歸到上一級目錄,如若也為空,則刪除,依此類推 os.mkdir('dirname') 生成單級目錄;相當于shell中mkdir dirname os.rmdir('dirname') 刪除單級空目錄,若目錄不為空則無法刪除,報錯;相當于shell中rmdir dirname os.listdir('dirname') 列出指定目錄下的所有文件和子目錄,包括隱藏文件,并以列表方式打印 os.remove() 刪除一個文件 os.rename("oldname","new") 重命名文件/目錄 os.stat('path/filename') 獲取文件/目錄信息 os.sep 操作系統特定的路徑分隔符,win下為"\\",Linux下為"/" os.linesep 當前平臺使用的行終止符,win下為"\t\n",Linux下為"\n" os.pathsep 用于分割文件路徑的字符串 os.name 字符串指示當前使用平臺。win->'nt'; Linux->'posix' os.system("bash command") 運行shell命令,直接顯示 os.environ 獲取系統環境變量 os.path.abspath(path) 返回path規范化的絕對路徑 os.path.split(path) 將path分割成目錄和文件名二元組返回 os.path.dirname(path) 返回path的目錄。其實就是os.path.split(path)的第一個元素 os.path.basename(path) 返回path最后的文件名。如何path以/或\結尾,那么就會返回空值。即os.path.split(path)的第二個元素 os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False os.path.isabs(path) 如果path是絕對路徑,返回True os.path.isfile(path) 如果path是一個存在的文件,返回True。否則返回False os.path.isdir(path) 如果path是一個存在的目錄,則返回True。否則返回False os.path.join(path1[, path2[, ...]]) 將多個路徑組合后返回,第一個絕對路徑之前的參數將被忽略 os.path.getatime(path) 返回path所指向的文件或者目錄的最后存取時間 os.path.getmtime(path) 返回path所指向的文件或者目錄的最后修改時間

  

進度條代碼

\r 表示當前輸出到行首[%-100s] 表示中括號之間有一百個站位符,減號表示從左到右追加字符,加號從右到左

  

def view_bar(num,total):rate = num / totalrate_num= int(rate * 100)r = '\r[%-100s]%d%%' % ('=' * rate_num, rate_num, )sys.stdout.write(r)sys.stdout.flush()if __name__ == '__main__':for i in range(101):time.sleep(0.1)view_bar(i, 100) 進度條代碼

?

hashlib模塊

用于加密相關的操作,代替了md5模塊和sha模塊,主要提供?SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法

import hashlib# ######## md5 ######## hash = hashlib.md5() # help(hash.update) hash.update(bytes('admin', encoding='utf-8')) print(hash.hexdigest())######## sha1 ########hash = hashlib.sha1() hash.update(bytes('admin', encoding='utf-8')) print(hash.hexdigest())# ######## sha256 ########hash = hashlib.sha256() hash.update(bytes('admin', encoding='utf-8')) print(hash.hexdigest())# ######## sha384 ########hash = hashlib.sha384() hash.update(bytes('admin', encoding='utf-8')) print(hash.hexdigest())# ######## sha512 ########hash = hashlib.sha512() hash.update(bytes('admin', encoding='utf-8')) print(hash.hexdigest())

以上加密算法雖然依然非常厲害,但時候存在缺陷,即:通過撞庫可以反解。所以,有必要對加密算法中添加自定義key再來做加密。

import hashlib# ######## md5 ########hash = hashlib.md5(bytes('898oaFs09f',encoding="utf-8")) hash.update(bytes('admin',encoding="utf-8")) print(hash.hexdigest())

python內置還有一個 hmac 模塊,它內部對我們創建 key 和 內容 進行進一步的處理然后再加密

import hmach = hmac.new(bytes('898oaFs09f',encoding="utf-8")) h.update(bytes('admin',encoding="utf-8")) print(h.hexdigest())

?

random模塊

取隨機數,驗證碼實例

import randomprint(random.random()) print(random.randint(1, 2)) print(random.randrange(1, 10))

  

import random checkcode = '' for i in range(4):current = random.randrange(0,4)if current != i:temp = chr(random.randint(65,90))else:temp = random.randint(0,9)checkcode += str(temp) print checkcode 隨機驗證碼

?

re模塊

python中re模塊提供了正則表達式相關操作

?

字符:

  . 匹配除換行符以外的任意字符\w 匹配字母或數字或下劃線或漢字\s 匹配任意的空白符\d 匹配數字\b 匹配單詞的開始或結束^ 匹配字符串的開始$ 匹配字符串的結束

次數:

  * 重復零次或更多次+ 重復一次或更多次? 重復零次或一次{n} 重復n次{n,} 重復n次或更多次{n,m} 重復n到m次

  

函數

match

# match,從起始位置開始匹配,匹配成功返回一個對象,未匹配成功返回Nonematch(pattern, string, flags=0)# pattern: 正則模型# string : 要匹配的字符串# falgs : 匹配模式 # 無分組r = re.match("h\w+", origin)print(r.group()) # 獲取匹配到的所有結果print(r.groups()) # 獲取模型中匹配到的分組結果print(r.groupdict()) # 獲取模型中匹配到的分組結果# 有分組# 為何要有分組?提取匹配成功的指定內容(先匹配成功全部正則,再匹配成功的局部內容提取出來) r = re.match("h(\w+).*(?P<name>\d)$", origin)print(r.group()) # 獲取匹配到的所有結果print(r.groups()) # 獲取模型中匹配到的分組結果print(r.groupdict()) # 獲取模型中匹配到的分組中所有執行了key的組

search

# search,瀏覽整個字符串去匹配第一個,未匹配成功返回None # search(pattern, string, flags=0) # 無分組 r = re.search("a\w+", origin)print(r.group()) # 獲取匹配到的所有結果print(r.groups()) # 獲取模型中匹配到的分組結果print(r.groupdict()) # 獲取模型中匹配到的分組結果# 有分組 r = re.search("a(\w+).*(?P<name>\d)$", origin)print(r.group()) # 獲取匹配到的所有結果print(r.groups()) # 獲取模型中匹配到的分組結果print(r.groupdict()) # 獲取模型中匹配到的分組中所有執行了key的組

?

findall

# findall,獲取非重復的匹配列表;如果有一個組則以列表形式返回,且每一個匹配均是字符串;如果模型中有多個組,則以列表形式返回,且每一個匹配均是元祖; # 空的匹配也會包含在結果中 #findall(pattern, string, flags=0)   例

sub

# sub,替換匹配成功的指定位置字符串sub(pattern, repl, string, count=0, flags=0) # pattern: 正則模型 # repl : 要替換的字符串或可執行對象 # string : 要匹配的字符串 # count : 指定匹配個數 # flags : 匹配模式   # 與分組無關 origin = "hello alex bcd alex lge alex acd 19"r = re.sub("a\w+", "999", origin, 2)print(r)

split

# split,根據正則匹配分割字符串split(pattern, string, maxsplit=0, flags=0) # pattern: 正則模型 # string : 要匹配的字符串 # maxsplit:指定分割個數 # flags : 匹配模式 # 無分組origin = "hello alex bcd alex lge alex acd 19"r = re.split("alex", origin, 1)print(r)# 有分組 origin = "hello alex bcd alex lge alex acd 19"r1 = re.split("(alex)", origin, 1)print(r1)r2 = re.split("(al(ex))", origin, 1)print(r2)

?

configparser 模塊

configparser用于處理特定格式的文件,其本質上是利用open來操作文件!

# 注釋1 ; 注釋2[section1] # 節點 k1 = v1 # k2:v2 # [section2] # 節點 k1 = v1 # View Code import configparserconfig = configparser.ConfigParser() # 打開一個configparser對象 config.read("test", encoding="utf-8") # 將文件傳送給對象# -------獲取所有節點 ----------# ret = config.sections() print(ret)# -------獲取指定節點下所有的鍵值對 ----------# ret = config.items('section1') print(ret)# -------獲取制定節點下的所有件 ----------# ret = config.options('section1') print(ret)# -------獲取指定節點下的指定key的value ----------# v = config.get('section1', 'k1') #一切皆為str # v = config.getint('section1', 'k1') #數字可自行轉換 # v = config.getfloat('section1', 'k1') #浮點數自行轉換 # v = config.getboolean('section1', 'k1') #布爾值自行轉換 print(v)# ---------- 檢查 (返回布爾值)------------ has_sec = config.has_section('section1') print(has_sec)# ---------- 添加節點 ------------ config.add_section("SEC_1") config.write(open('xxxooo', 'w'))# ----------刪除節點------------ config.remove_section("SEC_1") config.write(open('xxxooo', 'w'))config.add_section("user_msg") # 給config 對象插入一個節點,節點存在會報錯# -------添加 (section, option, value) ----------# config.set("user_msg", "zshaox", "123") # 給對象節點插入件值對(section, option, value) config.write(open("test", "w")) # 將修改結果寫入原文件# -------刪除 (section, option) ----------# config.remove_option("user_msg", "zshaox") config.write(open("test", "w"))# -------檢查 (section, option) ----------# has_opt = config.has_option("user_msg", "zshaox") print(has_opt)

XML 模塊

XML是實現不同語言或程序之間進行數據交換的協議,XML文件格式如下:

<data><country name="Liechtenstein"><rank updated="yes">2</rank><year>2023</year><gdppc>141100</gdppc><neighbor direction="E" name="Austria" /><neighbor direction="W" name="Switzerland" /></country><country name="Singapore"><rank updated="yes">5</rank><year>2026</year><gdppc>59900</gdppc><neighbor direction="N" name="Malaysia" /></country><country name="Panama"><rank updated="yes">69</rank><year>2026</year><gdppc>13600</gdppc><neighbor direction="W" name="Costa Rica" /><neighbor direction="E" name="Colombia" /></country> </data>

1、解析XML

利用字符串解析成對象

from xml.etree import ElementTree as ET# 打開文件,讀取XML內容 str_xml = open('xo.xml', 'r').read()# 將字符串解析成xml特殊對象,root代指xml文件的根節點 root = ET.XML(str_xml)

利用ElementTree.parse將文件直接解析成xml對象

from xml.etree import ElementTree as ET# 直接解析xml文件 tree = ET.parse("xo.xml")# 獲取xml文件的根節點 root = tree.getroot()

2、操作XML

class Element:"""An XML element.This class is the reference implementation of the Element interface.An element's length is its number of subelements. That means if youwant to check if an element is truly empty, you should check BOTHits length AND its text attribute.The element tag, attribute names, and attribute values can be eitherbytes or strings.*tag* is the element name. *attrib* is an optional dictionary containingelement attributes. *extra* are additional element attributes given askeyword arguments.Example form:<tag attrib>text<child/>...</tag>tail"""當前節點的標簽名tag = None"""The element's name."""當前節點的屬性attrib = None"""Dictionary of the element's attributes."""當前節點的內容text = None"""Text before first subelement. This is either a string or the value None.Note that if there is no text, this attribute may be eitherNone or the empty string, depending on the parser."""tail = None"""Text after this element's end tag, but before the next sibling element'sstart tag. This is either a string or the value None. Note that if therewas no text, this attribute may be either None or an empty string,depending on the parser."""def __init__(self, tag, attrib={}, **extra):if not isinstance(attrib, dict):raise TypeError("attrib must be dict, not %s" % (attrib.__class__.__name__,))attrib = attrib.copy()attrib.update(extra)self.tag = tagself.attrib = attribself._children = []def __repr__(self):return "<%s %r at %#x>" % (self.__class__.__name__, self.tag, id(self))def makeelement(self, tag, attrib):創建一個新節點"""Create a new element with the same type.*tag* is a string containing the element name.*attrib* is a dictionary containing the element attributes.Do not call this method, use the SubElement factory function instead."""return self.__class__(tag, attrib)def copy(self):"""Return copy of current element.This creates a shallow copy. Subelements will be shared with theoriginal tree."""elem = self.makeelement(self.tag, self.attrib)elem.text = self.textelem.tail = self.tailelem[:] = selfreturn elemdef __len__(self):return len(self._children)def __bool__(self):warnings.warn("The behavior of this method will change in future versions. ""Use specific 'len(elem)' or 'elem is not None' test instead.",FutureWarning, stacklevel=2)return len(self._children) != 0 # emulate old behaviour, for nowdef __getitem__(self, index):return self._children[index]def __setitem__(self, index, element):# if isinstance(index, slice):# for elt in element:# assert iselement(elt)# else:# assert iselement(element)self._children[index] = elementdef __delitem__(self, index):del self._children[index]def append(self, subelement):為當前節點追加一個子節點"""Add *subelement* to the end of this element.The new element will appear in document order after the last existingsubelement (or directly after the text, if it's the first subelement),but before the end tag for this element."""self._assert_is_element(subelement)self._children.append(subelement)def extend(self, elements):為當前節點擴展 n 個子節點"""Append subelements from a sequence.*elements* is a sequence with zero or more elements."""for element in elements:self._assert_is_element(element)self._children.extend(elements)def insert(self, index, subelement):在當前節點的子節點中插入某個節點,即:為當前節點創建子節點,然后插入指定位置"""Insert *subelement* at position *index*."""self._assert_is_element(subelement)self._children.insert(index, subelement)def _assert_is_element(self, e):# Need to refer to the actual Python implementation, not the# shadowing C implementation.if not isinstance(e, _Element_Py):raise TypeError('expected an Element, not %s' % type(e).__name__)def remove(self, subelement):在當前節點在子節點中刪除某個節點"""Remove matching subelement.Unlike the find methods, this method compares elements based onidentity, NOT ON tag value or contents. To remove subelements byother means, the easiest way is to use a list comprehension toselect what elements to keep, and then use slice assignment to updatethe parent element.ValueError is raised if a matching element could not be found."""# assert iselement(element) self._children.remove(subelement)def getchildren(self):獲取所有的子節點(廢棄)"""(Deprecated) Return all subelements.Elements are returned in document order."""warnings.warn("This method will be removed in future versions. ""Use 'list(elem)' or iteration over elem instead.",DeprecationWarning, stacklevel=2)return self._childrendef find(self, path, namespaces=None):獲取第一個尋找到的子節點"""Find first matching element by tag name or path.*path* is a string having either an element tag or an XPath,*namespaces* is an optional mapping from namespace prefix to full name.Return the first matching element, or None if no element was found."""return ElementPath.find(self, path, namespaces)def findtext(self, path, default=None, namespaces=None):獲取第一個尋找到的子節點的內容"""Find text for first matching element by tag name or path.*path* is a string having either an element tag or an XPath,*default* is the value to return if the element was not found,*namespaces* is an optional mapping from namespace prefix to full name.Return text content of first matching element, or default value ifnone was found. Note that if an element is found having no textcontent, the empty string is returned."""return ElementPath.findtext(self, path, default, namespaces)def findall(self, path, namespaces=None):獲取所有的子節點"""Find all matching subelements by tag name or path.*path* is a string having either an element tag or an XPath,*namespaces* is an optional mapping from namespace prefix to full name.Returns list containing all matching elements in document order."""return ElementPath.findall(self, path, namespaces)def iterfind(self, path, namespaces=None):獲取所有指定的節點,并創建一個迭代器(可以被for循環)"""Find all matching subelements by tag name or path.*path* is a string having either an element tag or an XPath,*namespaces* is an optional mapping from namespace prefix to full name.Return an iterable yielding all matching elements in document order."""return ElementPath.iterfind(self, path, namespaces)def clear(self):清空節點"""Reset element.This function removes all subelements, clears all attributes, and setsthe text and tail attributes to None."""self.attrib.clear()self._children = []self.text = self.tail = Nonedef get(self, key, default=None):獲取當前節點的屬性值"""Get element attribute.Equivalent to attrib.get, but some implementations may handle this abit more efficiently. *key* is what attribute to look for, and*default* is what to return if the attribute was not found.Returns a string containing the attribute value, or the default ifattribute was not found."""return self.attrib.get(key, default)def set(self, key, value):為當前節點設置屬性值"""Set element attribute.Equivalent to attrib[key] = value, but some implementations may handlethis a bit more efficiently. *key* is what attribute to set, and*value* is the attribute value to set it to."""self.attrib[key] = valuedef keys(self):獲取當前節點的所有屬性的 key"""Get list of attribute names.Names are returned in an arbitrary order, just like an ordinaryPython dict. Equivalent to attrib.keys()"""return self.attrib.keys()def items(self):獲取當前節點的所有屬性值,每個屬性都是一個鍵值對"""Get element attributes as a sequence.The attributes are returned in arbitrary order. Equivalent toattrib.items().Return a list of (name, value) tuples."""return self.attrib.items()def iter(self, tag=None):在當前節點的子孫中根據節點名稱尋找所有指定的節點,并返回一個迭代器(可以被for循環)。"""Create tree iterator.The iterator loops over the element and all subelements in documentorder, returning all elements with a matching tag.If the tree structure is modified during iteration, new or removedelements may or may not be included. To get a stable set, use thelist() function on the iterator, and loop over the resulting list.*tag* is what tags to look for (default is to return all elements)Return an iterator containing all the matching elements."""if tag == "*":tag = Noneif tag is None or self.tag == tag:yield selffor e in self._children:yield from e.iter(tag)# compatibilitydef getiterator(self, tag=None):# Change for a DeprecationWarning in 1.4 warnings.warn("This method will be removed in future versions. ""Use 'elem.iter()' or 'list(elem.iter())' instead.",PendingDeprecationWarning, stacklevel=2)return list(self.iter(tag))def itertext(self):在當前節點的子孫中根據節點名稱尋找所有指定的節點的內容,并返回一個迭代器(可以被for循環)。"""Create text iterator.The iterator loops over the element and all subelements in documentorder, returning all inner text."""tag = self.tagif not isinstance(tag, str) and tag is not None:returnif self.text:yield self.textfor e in self:yield from e.itertext()if e.tail:yield e.tail節點功能一覽表 節點操作方法

1)遍歷XML文檔的所有內容

from xml.etree import ElementTree as ET############ 解析方式一 ############ """ # 打開文件,讀取XML內容 str_xml = open('xo.xml', 'r').read()# 將字符串解析成xml特殊對象,root代指xml文件的根節點 root = ET.XML(str_xml) """ ############ 解析方式二 ############# 直接解析xml文件 tree = ET.parse("xo.xml")# 獲取xml文件的根節點 root = tree.getroot()### 操作# 頂層標簽 print(root.tag)# 遍歷XML文檔的第二層 for child in root:# 第二層節點的標簽名稱和標簽屬性print(child.tag, child.attrib)# 遍歷XML文檔的第三層for i in child:# 第二層節點的標簽名稱和內容print(i.tag,i.text) View Code

2)遍歷XML中指定的節點

from xml.etree import ElementTree as ET############ 解析方式一 ############ """ # 打開文件,讀取XML內容 str_xml = open('xo.xml', 'r').read()# 將字符串解析成xml特殊對象,root代指xml文件的根節點 root = ET.XML(str_xml) """ ############ 解析方式二 ############# 直接解析xml文件 tree = ET.parse("xo.xml")# 獲取xml文件的根節點 root = tree.getroot()### 操作# 頂層標簽 print(root.tag)# 遍歷XML中所有的year節點 for node in root.iter('year'):# 節點的標簽名稱和內容print(node.tag, node.text) View Code

?

3)修改節點內容

由于修改的節點時,均是在內存中進行,其不會影響文件中的內容。所以,如果想要修改,則需要重新將內存中的內容寫到文件

from xml.etree import ElementTree as ET############ 解析方式一 ############# 打開文件,讀取XML內容 str_xml = open('xo.xml', 'r').read()# 將字符串解析成xml特殊對象,root代指xml文件的根節點 root = ET.XML(str_xml)############ 操作 ############# 頂層標簽 print(root.tag)# 循環所有的year節點 for node in root.iter('year'):# 將year節點中的內容自增一new_year = int(node.text) + 1node.text = str(new_year)# 設置屬性node.set('name', 'alex')node.set('age', '18')# 刪除屬性del node.attrib['name']############ 保存文件 ############ tree = ET.ElementTree(root) tree.write("newnew.xml", encoding='utf-8') 解析字符串方式,修改,保存 from xml.etree import ElementTree as ET############ 解析方式二 ############# 直接解析xml文件 tree = ET.parse("xo.xml")# 獲取xml文件的根節點 root = tree.getroot()############ 操作 ############# 頂層標簽 print(root.tag)# 循環所有的year節點 for node in root.iter('year'):# 將year節點中的內容自增一new_year = int(node.text) + 1node.text = str(new_year)# 設置屬性node.set('name', 'alex')node.set('age', '18')# 刪除屬性del node.attrib['name']############ 保存文件 ############ tree.write("newnew.xml", encoding='utf-8') 解析文件方式,修改,保存

4)刪除節點

from xml.etree import ElementTree as ET############ 解析字符串方式打開 ############# 打開文件,讀取XML內容 str_xml = open('xo.xml', 'r').read()# 將字符串解析成xml特殊對象,root代指xml文件的根節點 root = ET.XML(str_xml)############ 操作 ############# 頂層標簽 print(root.tag)# 遍歷data下的所有country節點 for country in root.findall('country'):# 獲取每一個country節點下rank節點的內容rank = int(country.find('rank').text)if rank > 50:# 刪除指定country節點 root.remove(country)############ 保存文件 ############ tree = ET.ElementTree(root) tree.write("newnew.xml", encoding='utf-8') 解析字符串方式打開,刪除,保存 from xml.etree import ElementTree as ET############ 解析文件方式 ############# 直接解析xml文件 tree = ET.parse("xo.xml")# 獲取xml文件的根節點 root = tree.getroot()############ 操作 ############# 頂層標簽 print(root.tag)# 遍歷data下的所有country節點 for country in root.findall('country'):# 獲取每一個country節點下rank節點的內容rank = int(country.find('rank').text)if rank > 50:# 刪除指定country節點 root.remove(country)############ 保存文件 ############ tree.write("newnew.xml", encoding='utf-8') 解析文件方式打開,刪除,保存

3、創建XML文檔

from xml.etree import ElementTree as ET# 創建根節點 root = ET.Element("famliy")# 創建節點大兒子 son1 = ET.Element('son', {'name': '兒1'}) # 創建小兒子 son2 = ET.Element('son', {"name": '兒2'})# 在大兒子中創建兩個孫子 grandson1 = ET.Element('grandson', {'name': '兒11'}) grandson2 = ET.Element('grandson', {'name': '兒12'}) son1.append(grandson1) son1.append(grandson2)# 把兒子添加到根節點中 root.append(son1) root.append(son1)tree = ET.ElementTree(root) tree.write('oooo.xml',encoding='utf-8', short_empty_elements=False) 創建方式一 from xml.etree import ElementTree as ET# 創建根節點 root = ET.Element("famliy")# 創建大兒子 # son1 = ET.Element('son', {'name': '兒1'}) son1 = root.makeelement('son', {'name': '兒1'}) # 創建小兒子 # son2 = ET.Element('son', {"name": '兒2'}) son2 = root.makeelement('son', {"name": '兒2'})# 在大兒子中創建兩個孫子 # grandson1 = ET.Element('grandson', {'name': '兒11'}) grandson1 = son1.makeelement('grandson', {'name': '兒11'}) # grandson2 = ET.Element('grandson', {'name': '兒12'}) grandson2 = son1.makeelement('grandson', {'name': '兒12'})son1.append(grandson1) son1.append(grandson2)# 把兒子添加到根節點中 root.append(son1) root.append(son1)tree = ET.ElementTree(root) tree.write('oooo.xml',encoding='utf-8', short_empty_elements=False) 創建方式二 from xml.etree import ElementTree as ET# 創建根節點 root = ET.Element("famliy")# 創建節點大兒子 son1 = ET.SubElement(root, "son", attrib={'name': '兒1'}) # 創建小兒子 son2 = ET.SubElement(root, "son", attrib={"name": "兒2"})# 在大兒子中創建一個孫子 grandson1 = ET.SubElement(son1, "age", attrib={'name': '兒11'}) grandson1.text = '孫子'et = ET.ElementTree(root) #生成文檔對象 et.write("test.xml", encoding="utf-8", xml_declaration=True, short_empty_elements=False) 創建方式三

由于原生保存的XML時默認無縮進,如果想要設置縮進的話, 需要修改保存方式:

from xml.etree import ElementTree as ET from xml.dom import minidomdef prettify(elem):"""將節點轉換成字符串,并添加縮進。"""rough_string = ET.tostring(elem, 'utf-8')reparsed = minidom.parseString(rough_string)return reparsed.toprettyxml(indent="\t")# 創建根節點 root = ET.Element("famliy")# 創建大兒子 # son1 = ET.Element('son', {'name': '兒1'}) son1 = root.makeelement('son', {'name': '兒1'}) # 創建小兒子 # son2 = ET.Element('son', {"name": '兒2'}) son2 = root.makeelement('son', {"name": '兒2'})# 在大兒子中創建兩個孫子 # grandson1 = ET.Element('grandson', {'name': '兒11'}) grandson1 = son1.makeelement('grandson', {'name': '兒11'}) # grandson2 = ET.Element('grandson', {'name': '兒12'}) grandson2 = son1.makeelement('grandson', {'name': '兒12'})son1.append(grandson1) son1.append(grandson2)# 把兒子添加到根節點中 root.append(son1) root.append(son1)raw_str = prettify(root)f = open("xxxoo.xml",'w',encoding='utf-8') f.write(raw_str) f.close() 縮進形式保存

?

shutil 模塊

高級的 文件、文件夾、壓縮包 處理模塊

將文件內容拷貝到另一個文件中

import shutilshutil.copyfileobj(open('old.xml','r'), open('new.xml', 'w'))

拷貝文件

shutil.copyfile('f1.log', 'f2.log')

僅拷貝權限。內容、組、用戶均不變

shutil.copymode('f1.log', 'f2.log')

僅拷貝狀態的信息,包括:mode bits, atime, mtime, flags

shutil.copystat('f1.log', 'f2.log')

拷貝文件和權限

shutil.copy('f1.log', 'f2.log')

拷貝文件和狀態信息

shutil.copy2('f1.log', 'f2.log')

遞歸的去拷貝文件夾

shutil.copytree('folder1', 'folder2', ignore=shutil.ignore_patterns('*.pyc', 'tmp*'))

遞歸的去刪除文件

shutil.rmtree('folder1')

遞歸的去移動文件,它類似mv命令,其實就是重命名。

shutil.move('folder1', 'folder3')

?

zipfile 壓縮

import zipfile# 壓縮 z = zipfile.ZipFile('laxi.zip', 'w') z.write('a.log') z.write('data.data') z.close()# 解壓 z = zipfile.ZipFile('laxi.zip', 'r') z.extractall() z.close()

  

tarfile 壓縮

import tarfile# 壓縮 tar = tarfile.open('your.tar','w') tar.add('/Users/wupeiqi/PycharmProjects/bbs2.log', arcname='bbs2.log') tar.add('/Users/wupeiqi/PycharmProjects/cmdb.log', arcname='cmdb.log') tar.close()# 解壓 tar = tarfile.open('your.tar','r') tar.extractall() # 可設置解壓地址 tar.close()

系統命令模塊

1、可以執行shell命令的相關模塊和函數有:

  • os.system
  • os.spawn*
  • os.popen* ? ? ? ? ?--廢棄
  • popen2.* ? ? ? ? ? --廢棄
  • commands.* ? ? ?--廢棄,3.x中被移除

以上執行shell命令的相關的模塊和函數的功能均在 subprocess 模塊中實現,并提供了更豐富的功能。

call?

執行命令,返回狀態碼

ret = subprocess.call(["ls", "-l"], shell=False) ret = subprocess.call("ls -l", shell=True)

check_call

執行命令,如果執行狀態碼是 0 ,則返回0,否則拋異常

subprocess.check_call(["ls", "-l"]) subprocess.check_call("exit 1", shell=True)

check_output

執行命令,如果狀態碼是 0 ,則返回執行結果,否則拋異常

subprocess.check_output(["echo", "Hello World!"]) subprocess.check_output("exit 1", shell=True)

subprocess.Popen(...)

args:shell命令,可以是字符串或者序列類型(如:list,元組) bufsize:指定緩沖。0 無緩沖,1 行緩沖,其他 緩沖區大小,負值 系統緩沖 stdin, stdout, stderr:分別表示程序的標準輸入、輸出、錯誤句柄 preexec_fn:只在Unix平臺下有效,用于指定一個可執行對象(callable object),它將在子進程運行之前被調用 close_sfs:在windows平臺下,如果close_fds被設置為True,則新創建的子進程將不會繼承父進程的輸入、輸出、錯誤管道。 所以不能將close_fds設置為True同時重定向子進程的標準輸入、輸出與錯誤(stdin, stdout, stderr)。 shell:同上 cwd:用于設置子進程的當前目錄 env:用于指定子進程的環境變量。如果env = None,子進程的環境變量將從父進程中繼承。 universal_newlines:不同系統的換行符不同,True -> 同意使用 \n startupinfo與createionflags只在windows下有效 將被傳遞給底層的CreateProcess()函數,用于設置子進程的一些屬性,如:主窗口的外觀,進程的優先級等等

  

import subprocessobj = subprocess.Popen("mkdir t3", shell=True, cwd='/home/dev',) cwd 指定之行所在目錄 import subprocessobj = subprocess.Popen(["python"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) obj.stdin.write("print(1)\n") obj.stdin.write("print(2)")out_error_list = obj.communicate() print(out_error_list) 多命令執行獲取輸出以及錯誤 import subprocessobj = subprocess.Popen(["python"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) out_error_list = obj.communicate('print("hello")') print(out_error_list) 單條命了執行獲取輸出以及錯誤

?

?

  

?

轉載于:https://www.cnblogs.com/zshaox/p/5598284.html

總結

以上是生活随笔為你收集整理的python 学习 [day6]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产不卡免费 | 欧美性生交大片免网 | 亚洲国产精品电影在线观看 | av网站地址 | 超碰在线最新网址 | 天天操夜夜操国产精品 | 亚洲资源一区 | 91成人网页版 | 欧美一区二区三区在线视频观看 | 日韩极品在线 | 日韩午夜av电影 | 国产探花视频在线播放 | 视频在线亚洲 | 日日夜夜精品免费观看 | 欧美性色综合 | 欧美最爽乱淫视频播放 | 国产永久网站 | 欧美成人黄色片 | 国产美女精品视频免费观看 | 99在线热播精品免费 | 欧美亚洲国产精品久久高清浪潮 | 日批视频在线播放 | 99免费视频 | 午夜少妇av| 中文字幕精品三区 | 国内精品久久天天躁人人爽 | 日韩欧美视频在线观看免费 | 婷婷天天色| 免费网站在线观看成人 | 丁香影院在线 | 欧美极度另类 | 亚洲精品国产品国语在线 | 亚洲免费在线观看视频 | 婷婷四房综合激情五月 | 久久精品一二三区 | 91麻豆精品国产午夜天堂 | 波多野结衣久久资源 | 91人人澡人人爽人人精品 | 亚洲永久国产精品 | 亚洲最大在线视频 | 狠狠狠狠干 | 在线观看亚洲国产精品 | 亚洲天天草| 一本—道久久a久久精品蜜桃 | 深夜免费小视频 | 日韩精品一区二区三区外面 | 91最新中文字幕 | 美女视频免费一区二区 | 91av资源在线| 亚洲精品国偷拍自产在线观看蜜桃 | 91久久国产精品 | 国产最新精品视频 | 精品字幕在线 | 午夜神马福利 | 最近日韩免费视频 | 日韩三级av| 久久精品99久久久久久2456 | 成人av高清在线观看 | 久久国产欧美日韩精品 | 在线观看色网 | 国产高清在线免费视频 | 日韩欧美69 | 免费视频你懂的 | 欧美另类重口 | 69国产精品视频 | 成人免费在线观看av | 国产精品短视频 | 操操操日日 | 99免费看片 | av品善网 | 中文字幕久久久精品 | 2022中文字幕在线观看 | 欧美二区视频 | 亚洲丁香日韩 | 五月婷婷视频在线 | 国产福利一区二区三区视频 | 91喷水 | 日韩欧美精品在线观看视频 | 97理论电影 | 久久免费视频6 | 黄色福利视频网站 | 国产一区二区手机在线观看 | 国产精品一区二区三区四 | 国产三级在线播放 | 亚洲国产丝袜在线观看 | 黄色大片日本免费大片 | 最近字幕在线观看第一季 | 久久久久久久久久久久久9999 | 成人精品99 | 97国产小视频 | 九色在线| 亚洲国产精品成人av | 超碰在线天天 | 九九在线高清精品视频 | 香蕉视频啪啪 | 国产精品国产三级国产aⅴ入口 | 欧美日韩一区二区三区免费视频 | 人人澡av | av大全在线观看 | 久久婷婷开心 | av网站在线观看播放 | av资源免费在线观看 | 永久免费毛片在线观看 | av电影在线免费观看 | 亚洲午夜av电影 | 精品视频国产一区 | 久久久国产毛片 | 久久国产精品99精国产 | 视频在线观看日韩 | 欧美久草视频 | 久久不见久久见免费影院 | 国产一区二区在线观看视频 | 在线电影 一区 | 国产在线观看污片 | 久久天天躁 | 五月婷婷六月丁香 | 日韩av电影中文字幕在线观看 | 国产免码va在线观看免费 | 免费看一及片 | 精品99在线视频 | 99久久精品久久亚洲精品 | 国产黄在线看 | 六月色丁 | 午夜少妇一区二区三区 | 探花视频在线观看+在线播放 | 亚洲第一成网站 | 亚洲成aⅴ人片久久青草影院 | 国产精品99精品 | 天天操天天操天天操天天操天天操 | av成人在线播放 | 久久香蕉电影网 | 亚洲专区欧美 | 综合激情av | 97视频资源| 美女免费网视频 | 国产综合香蕉五月婷在线 | 亚洲精品乱码久久久久久蜜桃不爽 | 成人国产精品一区二区 | 夜夜干夜夜 | 韩国精品福利一区二区三区 | 91九色精品女同系列 | 国产精品涩涩屋www在线观看 | 一区二区精品在线视频 | 狠狠躁夜夜av | 夜色资源站wwwcom | 日韩av不卡在线观看 | 久久国产电影院 | 久久艹综合 | 黄色免费网战 | 美国av片在线观看 | 麻豆综合网 | 日韩电影中文字幕在线观看 | 久久国产精品久久精品国产演员表 | 亚洲精品视频中文字幕 | 玖玖玖国产精品 | 亚洲一级黄色片 | 91麻豆精品国产91久久久久久久久 | 天堂av在线免费观看 | 99精品国产兔费观看久久99 | www免费在线观看 | 在线观看一区二区精品 | 欧美夫妻生活视频 | 中文字幕中文字幕在线一区 | 国产精品女人久久久 | 国产精品久久久久久久久婷婷 | 国产精品自拍在线 | 亚洲精品视频网址 | 天天色天天操综合 | 欧美日韩性生活 | 中文字幕视频一区 | 亚洲视频播放 | 丰满少妇在线 | 色欧美视频 | 中文电影网 | 波多野结衣一区二区三区中文字幕 | 国产无套精品久久久久久 | a成人在线| 中文字幕综合在线 | 亚洲成人国产 | 久久九九国产精品 | 天天干天天做 | 久久成人视屏 | 久一久久 | 开心激情综合网 | 美女网站视频久久 | 午夜视频一区二区 | 国产麻豆剧果冻传媒视频播放量 | 国产韩国日本高清视频 | 婷婷香蕉| 免费av网站在线看 | 日韩精品亚洲专区在线观看 | 永久免费观看视频 | 夜夜夜夜操 | 四虎国产精品免费 | 国产v亚洲v | 99中文字幕在线观看 | 天天干天天干天天操 | 欧美激情综合五月色丁香 | ,午夜性刺激免费看视频 | 国产精品久久久久久久久久久免费 | 精品国产乱码久久久久久三级人 | 国产真实精品久久二三区 | 99九九热只有国产精品 | 欧美激精品 | 免费看av在线 | 啪啪免费观看网站 | 日韩剧| www.午夜视频 | 亚洲精品久 | 国产精品一区在线观看你懂的 | 国产一级高清 | 天堂网一区 | 亚洲黄色在线观看 | 一级性视频 | 国产裸体无遮挡 | 成 人 免费 黄 色 视频 | 精品免费久久久久久 | 精品在线99 | 摸bbb搡bbb搡bbbb | 亚洲第一成网站 | 丝袜美女视频网站 | 久久综合免费视频影院 | ww亚洲ww亚在线观看 | 99精品视频在线观看 | 一本一本久久aa综合精品 | 亚州精品天堂中文字幕 | 亚洲国产高清在线观看视频 | 国产一卡在线 | 国产精品理论在线观看 | 亚洲精品视频在线观看视频 | 久久视频这里有久久精品视频11 | 国产精品成人自产拍在线观看 | 亚洲欧美日韩中文在线 | 丁香综合网 | 欧美一区二区三区在线看 | 一区二区 精品 | 亚洲国产片色 | 国产日韩欧美精品在线观看 | 亚洲一级片av | 国产 字幕 制服 中文 在线 | 四虎影视成人永久免费观看亚洲欧美 | 欧美一区免费在线观看 | 99久久99热这里只有精品 | av福利在线导航 | 在线免费视频一区 | 亚洲成人在线免费 | 在线观看一区二区视频 | 国产 日韩 欧美 自拍 | 久草在线视频在线观看 | 国产91亚洲精品 | 日本xxxxav | 在线成人高清电影 | 在线电影播放 | 精品一区二区免费视频 | 亚洲国内精品视频 | 伊人春色电影网 | 999久久久久久久久6666 | 亚洲视频每日更新 | 日韩网站免费观看 | 精品久久在线 | 亚洲区视频在线 | 狠狠狠狠狠狠狠狠干 | 又黄又刺激又爽的视频 | 中文字幕在线资源 | 国产中文在线播放 | 免费亚洲一区二区 | 欧美大荫蒂xxx| 日韩av一区二区三区 | 天堂av免费在线 | 在线v| 911免费视频| 午夜精品999 | 久草视频免费播放 | 在线视频欧美亚洲 | 在线观看免费一区 | av免费观看网站 | 91探花在线视频 | 国产永久免费观看 | 色综合五月 | 天天干夜夜爽 | 91亚洲在线 | 久久国产精品一区二区 | 成人免费av电影 | 日韩免费高清在线 | www.久久久.com| 国产麻豆精品传媒av国产下载 | 欧美日韩国产一区二区在线观看 | 中文字幕在线观看日本 | 中文字幕精品一区二区三区电影 | 97国产一区二区 | 亚洲日本一区二区在线 | 日韩在线视频线视频免费网站 | 欧美日韩视频 | 免费在线中文字幕 | 成人免费在线观看av | 日韩激情视频在线观看 | 亚洲五月| 激情av一区二区 | 中文字幕人成不卡一区 | 日韩av高清 | 黄色电影在线免费观看 | 久久这里 | 国内精品久久久久影院日本资源 | 亚洲精品久久久久久久蜜桃 | 9幺看片| 麻豆免费精品视频 | 精品国产一区二区三区久久久久久 | 国产精品一区二区av影院萌芽 | 激情久久伊人 | 久久黄色片子 | 久青草国产在线 | 亚洲午夜激情网 | 欧美老人xxxx18 | 四虎在线永久免费观看 | 日韩欧美在线观看 | 日韩羞羞| 最近日本中文字幕a | 亚洲妇女av| 日韩在线观看三区 | 久久精品国产亚洲精品 | 中文字幕免费高清av | 日韩在线播放视频 | 亚洲三级视频 | 天天色综合三 | 精品视频不卡 | 在线视频一区二区 | 青青草国产在线 | 日韩av网址在线 | 国产高清黄 | 成人精品国产免费网站 | 伊人资源站 | 久草免费资源 | 成年人电影免费在线观看 | 久久精品9 | 欧美精品在线观看免费 | 伊人亚洲综合 | 日韩一级片网址 | 成人黄色av免费在线观看 | 综合色爱| 99精品久久99久久久久 | 中文字幕在线观看完整版电影 | 欧美在线视频一区二区 | 中文字幕一区av | 日韩av三区| 国产黄色成人av | 精品色999 | 激情婷婷久久 | 亚洲精品久久久久久国 | 中文字幕一区二区三区在线观看 | 婷婷激情欧美 | 久久伊人婷婷 | 成人99免费视频 | 91精品在线视频观看 | 二区三区毛片 | a色视频 | 亚洲精品美女在线观看 | 四虎国产精品永久在线国在线 | 成人xxxx| 97视频免费看 | av在线精品 | www.av小说 | 免费观看国产精品视频 | 99视频偷窥在线精品国自产拍 | 九九九九免费视频 | 国产一区二区中文字幕 | 久久免费99 | 国产黄色免费看 | 精品国自产在线观看 | 欧美性高跟鞋xxxxhd | 五月天激情在线 | 在线精品视频免费播放 | 国产品久精国精产拍 | 欧美日韩国产在线精品 | 国产日韩欧美在线观看 | 色综合久久久久综合体桃花网 | 手机av电影在线观看 | 欧美巨大荫蒂茸毛毛人妖 | 亚洲 av网站 | 91精品国产福利 | 国产精品第2页 | 日韩av午夜 | 亚色视频在线观看 | 色九九视频 | 国产一区二区在线免费观看 | 精品久久久久一区二区国产 | 中文字幕在线播放视频 | 日韩美女免费线视频 | 久久综合免费 | 国产一区高清在线观看 | 国产一二三在线视频 | 日韩字幕在线 | 中文字幕视频免费观看 | 日韩av电影网站在线观看 | 在线看一区二区 | a级黄色片视频 | 亚洲日日射| 99久久婷婷国产综合亚洲 | 国产va饥渴难耐女保洁员在线观看 | 手机看片国产日韩 | 综合色在线观看 | 日本久久电影网 | 天天摸天天舔天天操 | 91天天操 | 天堂网av 在线 | 亚洲精品在线观看av | 最新99热 | 亚洲最新av在线 | 成人在线视频在线观看 | 99精品久久只有精品 | 天天视频亚洲 | 日韩黄色在线电影 | 成人av电影免费 | 久久亚洲综合国产精品99麻豆的功能介绍 | 国产成人精品免费在线观看 | 国产精品一区二区无线 | 91爱爱网址 | 在线看片91| 国产成人一区二区三区久久精品 | 97免费在线视频 | 色多多视频在线观看 | 久久免费观看视频 | 亚洲香蕉在线观看 | 婷五月天激情 | 国产精品免费在线 | www.夜夜操.com| 亚洲欧洲av在线 | 欧美成人精品欧美一级乱 | 久久99精品久久久久久久久久久久 | 制服丝袜一区二区 | 天天插天天干天天操 | 国产成人精品999在线观看 | 麻豆 videos | 超碰九九 | 久久999精品 | 国产一及片 | 韩国精品一区二区三区六区色诱 | 人人超碰97 | 精品不卡av| 国产一区二区三区黄 | av青草| 亚洲三级在线 | 久久午夜影视 | 色婷婷丁香 | 日韩大片在线 | 黄色国产高清 | 一区二区三区免费看 | 成年人在线免费看片 | 在线日韩av | 激情视频免费在线 | 99色资源| 五月天婷亚洲天综合网鲁鲁鲁 | 天天做天天看 | 亚洲 欧洲av | 色婷婷导航 | 91免费看黄色 | 欧美国产日韩一区 | 日韩av电影免费在线观看 | 81精品国产乱码久久久久久 | 91av电影网 | 最近免费中文字幕mv在线视频3 | 久精品视频| www.成人sex| 黄色毛片视频免费观看中文 | 免费三及片 | 国产成人久久精品77777 | 偷拍精偷拍精品欧洲亚洲网站 | 亚洲精品乱码白浆高清久久久久久 | 伊人久久国产精品 | 久久精品视频免费观看 | 欧美日韩在线免费视频 | 五月婷婷在线综合 | 美女天天操 | 伊人国产在线播放 | 视频在线观看一区 | 亚洲黄色在线免费观看 | 黄色亚洲片| 久久好看免费视频 | 中文字幕成人一区 | 日韩一区二区三区不卡 | 五月天丁香 | 亚洲精品视频在线观看免费 | 国产成人福利片 | 久久成人国产精品 | 婷婷丁香狠狠爱 | 色九色| 成人国产精品入口 | 91看片在线免费观看 | 爱干视频 | 久久伊人八月婷婷综合激情 | 五月婷婷黄色 | 亚洲高清精品在线 | 免费视频你懂得 | 欧美 日韩 国产 中文字幕 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | av成人免费 | 五月天视频网站 | 成年人免费电影在线观看 | 激情综合色综合久久 | 91九色成人蝌蚪首页 | 91av色| 国产一区二区三区免费在线观看 | 奇米网777| 久久精品99国产精品亚洲最刺激 | 久久私人影院 | 国产91欧美| 亚洲少妇久久 | 日韩免费播放 | 日韩精品一区二区免费视频 | 激情综合五月网 | 狠狠久久伊人 | 97超碰免费在线观看 | 国产真实精品久久二三区 | 欧美激情亚洲综合 | 日韩欧美在线高清 | 欧美一级电影片 | 久久国产精品色av免费看 | 久久国产精品久久久久 | 日韩高清在线不卡 | 在线观看91精品视频 | 日本99精品 | 亚洲国产视频直播 | 精品一区二区久久久久久久网站 | 天堂av在线网| 天天干中文字幕 | 欧美伦理一区二区三区 | 狠狠干天天色 | 日韩xxxx视频 | 激情视频免费观看 | 日本女人在线观看 | 亚洲精品视频一 | 高清av中文在线字幕观看1 | 欧美一级黄色视屏 | 这里只有精彩视频 | 久久免费毛片视频 | 懂色av懂色av粉嫩av分享吧 | 成人黄色电影视频 | 一区二区中文字幕在线播放 | 国产精品电影一区 | 手机av在线不卡 | 97韩国电影 | 成人毛片a | 中文字幕精品一区二区精品 | 日日操日日 | 88av网站| 久久午夜国产精品 | 激情综合色播五月 | 久久看免费视频 | 久久不射电影网 | 99精品在线免费观看 | 在线中文字幕av观看 | 国产精品1区2区3区在线观看 | 91尤物国产尤物福利在线播放 | 国产一区二区久久久久 | 亚洲精选99 | 国产精品午夜久久 | 日韩一二区在线观看 | 九九免费在线看完整版 | 日韩欧美网址 | 日韩色在线观看 | 成人91在线 | 亚洲一区动漫 | www激情网 | 午夜久久影视 | 国产精品白浆视频 | 国产手机在线精品 | 亚洲激情小视频 | 久久精品日产第一区二区三区乱码 | 日韩av三区 | 久久五月天色综合 | 色综合天天天天做夜夜夜夜做 | 亚洲在线黄色 | 一区二区三区四区五区六区 | 欧洲在线免费视频 | 综合网色 | 伊人久久电影网 | 欧美成人精品欧美一级乱黄 | 精品国产不卡 | 91在线精品观看 | 在线看片成人 | 超碰在线观看99 | 中文有码在线视频 | 九九爱免费视频 | 成人黄色资源 | 日韩成人精品在线观看 | 99久精品视频 | 久操中文字幕在线观看 | 欧美日韩免费在线观看视频 | 亚洲日本国产 | 亚洲成人av在线电影 | 亚洲伦理一区二区 | www.夜夜爱| 91成人在线网站 | 五月天六月婷婷 | 欧美国产日韩一区 | 丰满少妇一级 | 91在线日韩 | 天天色欧美 | 国产一区二区手机在线观看 | 欧美精品久久人人躁人人爽 | 欧美日高清视频 | 人人爱天天操 | 国产一区二区三区视频在线 | 久久国产精品99精国产 | 国产精品毛片一区二区在线 | 国产福利免费看 | 国产日韩精品视频 | 日韩精品久久久久久久电影竹菊 | 91中文字幕永久在线 | 欧美精品一区二区免费 | 看v片 | 91亚洲影院| 欧美精品做受xxx性少妇 | 开心激情五月网 | 精品人人人人 | 国产日产精品一区二区三区四区 | 欧美aaa视频 | 在线观看的av | 亚洲va在线va天堂va偷拍 | 久久视频国产精品免费视频在线 | 国产手机在线精品 | 亚洲欧美色婷婷 | 国产在线精品二区 | 丁香视频在线观看 | 久久在线免费观看 | 日韩,精品电影 | 狠狠躁夜夜a产精品视频 | 91精品国产91久久久久福利 | 国产美女精品人人做人人爽 | 久久久国产网站 | www免费看| 国产成人av电影 | 精品一区二区亚洲 | a√资源在线 | 精品特级毛片 | 久久精品视频18 | 天天曰天天干 | 国产成人一区二区精品非洲 | 亚洲视频免费视频 | 涩av在线| 亚洲精品国产精品久久99热 | 视频一区在线免费观看 | 久免费| 中文字幕一区二 | 美女一级毛片视频 | 99精品色 | 黄色一级大片免费看 | 日韩欧美国产视频 | 亚洲综合日韩在线 | 91久久久久久久一区二区 | 五月天婷亚洲天综合网鲁鲁鲁 | 成人av网站在线播放 | 欧美精品三级在线观看 | 在线免费观看的av网站 | 久久久久久综合网天天 | 亚洲国内精品 | 99在线免费视频 | 国产首页| 色的网站在线观看 | 99热精品国产| 亚洲精品成人网 | 中文字幕123区 | 色婷婷综合视频在线观看 | 欧美久久久一区二区三区 | 婷婷精品 | 777奇米四色| 九色琪琪久久综合网天天 | 在线观看黄网 | 久久9精品 | 天天干天天色2020 | 伊人一级| 九九爱免费视频在线观看 | 久久精品久久精品久久39 | 亚洲国产99| www黄在线| 一区二区三区免费网站 | 美国av大片| 国产一区二区在线播放视频 | 九九综合久久 | 欧美一区二区三区在线看 | 操操操影院 | 日韩精品国产一区 | 亚洲综合黄色 | jizz18欧美18 | 日韩视频免费在线观看 | 国产又粗又猛又黄 | 国产视频每日更新 | 久久精品国产精品亚洲精品 | 五月婷婷激情综合网 | 亚洲视频 在线观看 | 国产人成看黄久久久久久久久 | 特级西西www44高清大胆图片 | 在线观看黄色小视频 | 国产精品乱码一区二区视频 | 四虎国产精品成人免费4hu | 五月婷婷色综合 | 精品国产亚洲日本 | 亚洲国产精品久久久久 | 成人在线视频一区 | 成人xxxx | 玖玖精品在线 | 久久a v电影 | 欧美精品久久久久久久久久丰满 | 亚洲va在线va天堂va偷拍 | 亚洲视频资源在线 | 国产精品免费不卡 | 国产黄色免费在线观看 | 国产精品视频免费观看 | 18久久久久| 欧美精品亚州精品 | 91精品对白一区国产伦 | 日韩av一区在线观看 | 精品国产乱码久久久久久浪潮 | 91手机在线看片 | 欧美精品二区 | 在线精品国产 | 国产日韩视频在线观看 | 91av亚洲 | 最近更新中文字幕 | 国内精品久久久久久久影视简单 | 久久精品99 | 超碰97在线资源 | 99精品视频一区 | 成片人卡1卡2卡3手机免费看 | 黄色毛片在线看 | 国产高清精品在线 | 亚洲第一区在线观看 | 免费看一及片 | 91视频在线观看大全 | 福利视频一区二区 | 免费日韩 精品中文字幕视频在线 | 超碰人人超碰 | 91一区二区三区在线观看 | 黄色在线观看免费网站 | 亚洲成成品网站 | 欧美性生活一级片 | 日本三级全黄少妇三2023 | 免费在线观看一区二区三区 | 亚洲v欧美v国产v在线观看 | 欧美日韩国产综合一区二区 | 国产一线二线三线性视频 | 国产精品乱码在线 | 中文字幕高清 | 免费观看版 | 久久视频精品在线 | 日批视频| 五月天激情视频在线观看 | 久草在线免费资源 | 日本69hd | 色在线最新| 人人射人人澡 | 天堂中文在线视频 | 国产一级黄色片免费看 | 国产日韩视频在线 | 日韩欧美在线免费观看 | 天天草夜夜 | 夜夜操天天 | 亚洲精品自在在线观看 | 成人久久18免费网站 | 欧美日bb| 麻豆精品国产传媒 | 久草精品电影 | 亚洲精品国产精品99久久 | 国产资源在线观看 | 香蕉精品视频在线观看 | 中文字幕资源网 国产 | 美女在线黄 | 91在线产啪 | 成人av片免费看 | 亚洲性少妇性猛交wwww乱大交 | 99精品欧美一区二区蜜桃免费 | 国内成人精品视频 | 国产成人福利片 | 精品在线视频播放 | 亚洲精品成人免费 | 日韩av偷拍 | 婷婷久操 | 久久在线影院 | 亚洲精品国偷拍自产在线观看蜜桃 | 色在线免费视频 | 久久人人射 | 视频高清 | 婷婷色 亚洲 | 97碰碰精品嫩模在线播放 | 91夫妻视频 | 久久精品一二三区 | 日韩av手机在线看 | 欧美日韩亚洲在线观看 | 99精品热视频只有精品10 | 国产不卡在线看 | 国产精品免费一区二区三区在线观看 | 国产中文字幕视频在线观看 | 美女视频国产 | 99在线视频免费观看 | 色欲综合视频天天天 | 亚洲精选在线观看 | 久久久国产成人 | 国产日产精品一区二区三区四区的观看方式 | 高清精品久久 | 99精品视频免费看 | 久久免费视频6 | 四虎在线观看 | 国产无限资源在线观看 | 91精品久久久久久久久久久久久 | 一区二区欧美激情 | 日韩欧美在线综合网 | 欧美一级专区免费大片 | 精品在线播放 | 天天操天天色天天射 | 夜夜视频欧洲 | 免费在线观看的av网站 | 欧美另类交在线观看 | 成人黄色在线观看视频 | 免费观看国产视频 | 91黄色视屏| 国产精品美女久久久久久久久 | 欧美一级黄色网 | 国产色区 | 不卡的一区二区三区 | 国产一区二区三区免费在线 | 亚洲精品中文在线资源 | 久久久精品电影 | 欧美va天堂在线电影 | 婷婷色中文 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 91av大全| 三级黄色免费片 | av电影免费在线播放 | 国产亚洲成av片在线观看 | 精品中文字幕视频 | 99久久婷婷国产综合精品 | 91看片在线看片 | 视频国产 | 国产中出在线观看 | 国产96在线观看 | 4438全国亚洲精品在线观看视频 | 波多野结衣视频一区二区三区 | 日韩欧美精品在线观看 | 国产精品 欧美 日韩 | 日韩网站视频 | 日韩二三区 | 久久精品99国产精品日本 | 国产精久久久 | 亚洲黑丝少妇 | 日韩大陆欧美高清视频区 | 色婷婷电影 | 久久久久久久网 | 久久久国产精品免费 | 国产永久网站 | 国产一区二区在线视频观看 | 不卡的一区二区三区 | 日韩午夜av | 国产一区二区在线视频观看 | 久久精品视频在线观看免费 | 成年人视频在线免费 | 日韩在线免费高清视频 | 中文字幕有码在线播放 | 中文字幕高清 | 国产不卡精品视频 | 深爱激情五月综合 | 国产手机视频在线播放 | 久久精品国产第一区二区三区 | 日韩高清在线看 | 久青草视频在线观看 | 国产va饥渴难耐女保洁员在线观看 | 在线中文字幕av观看 | 久久婷亚洲五月一区天天躁 | 国产aaa毛片 | 久久久久免费精品 | 99人成在线观看视频 | 毛片网站在线 | 中文字幕久久精品一区 | 啪啪精品| 99久久精品视频免费 | 天天操网址 | 超碰在线天天 | 成人a免费 | 一区二区视频在线看 | 91视频午夜 | 久久在草| 99热免费在线 | 精品人妖videos欧美人妖 | 亚洲天天在线 | 久久婷综合 | 久久一区国产 | v片在线播放| 成人免费在线播放视频 | 天天色天天操综合 | 成人网444ppp| 亚洲一级片 | 99在线热播 | 国产精品久久久久久久久久久久午 | 六月丁香六月婷婷 | av中文在线观看 | 日韩免 | 中文字幕久久久精品 | 91精品国产九九九久久久亚洲 | 中文字幕免费一区 | 91福利区一区二区三区 | 日韩一区在线免费观看 | 国产视频91在线 | 日日夜夜综合网 | 亚洲精品资源在线 | 亚洲欧美综合精品久久成人 | 91手机电视 | 成人中文字幕在线 | 亚洲情感电影大片 | 三级黄在线 | 欧美日韩国产亚洲乱码字幕 | 349k.cc看片app | 韩日视频在线 | 国产精品久久久久久欧美 | 久草在线综合网 | 免费网址你懂的 | 五月综合在线观看 | 成人av网站在线播放 | 激情五月播播久久久精品 | 午夜性盈盈 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 九九日韩 | www五月天婷婷 | 在线免费观看的av | 国产精品入口66mio女同 | 91精品专区| 西西大胆免费视频 | 88av网站 | 国产成人精品综合久久久 | 国产精品久久三 | 一区免费观看 | 欧美精品天堂 | 免费观看全黄做爰大片国产 | 亚洲一片黄 | 免费精品在线观看 | 国产中文字幕亚洲 | 最近中文国产在线视频 | 久久久国产精品视频 | 91免费视频国产 | 久久国产精品视频观看 | 亚洲v精品 | 91视频高清 | 亚洲,国产成人av | 免费三级骚 | 亚洲精品在线观看视频 | 久久综合国产伦精品免费 | 国产成年免费视频 | 免费色视频网址 | 国产精品观看在线亚洲人成网 | 日韩av一区二区在线播放 | 一区二区三区免费在线观看视频 | 曰本三级在线 | 人人爽久久久噜噜噜电影 | 黄网站色视频免费观看 | 人人擦| 一区二区久久久久 | 亚洲国产成人在线 | 久久成人18免费网站 | 99久久精品国产一区二区三区 | 国产黄色免费在线观看 | 五月天综合色激情 | 国产精品美女999 | 免费三级大片 | 亚洲天堂网在线播放 | 亚洲有 在线| 国产精品九九九九九 | 亚洲激情视频在线观看 | 国产美女黄网站免费 | 成人精品影视 | 黄网站免费大全入口 | a在线观看免费视频 | 97热视频 | 国产伦精品一区二区三区无广告 | 人九九精品 | 久久影院一区 | 日韩电影一区二区在线 | 一区二区不卡视频在线观看 | 免费污片 | 中文字幕乱码日本亚洲一区二区 | 国产在线播放一区 | 日韩免费一二三区 | 黄色aaa毛片 | 少妇性色午夜淫片aaaze | 成人网444ppp | 夜夜摸夜夜爽 | 嫩模bbw搡bbbb搡bbbb| 狠狠干狠狠色 | www.香蕉| 亚洲国产黄色片 | 国产精品毛片一区二区三区 | 欧美国产日韩久久 | 国色天香av | 亚洲精品国产精品久久99热 | 久久久久久综合网天天 | 久草视频在线观 | 97在线视频观看 | 欧美久久成人 | 91精品国产高清自在线观看 | 最近2019年日本中文免费字幕 | 免费在线观看91 | 一区二区三区免费网站 |