午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術(shù)文章
文章詳情頁

Python:通配符查找、拷貝文件的操作

瀏覽:2日期:2022-06-21 13:20:54
把文件夾dir1中后綴為’.jpg’的文件拷貝到文件夾dir2中:

import globimport shutilimport sys if __name__ == ’__main__’: file_names = glob.glob(’dir1/*.jpg’) for file_name in file_names: try: shutil.copy(file_name, ’dir2’) except: print('Failed to copy file: ', sys.exc_info())

補(bǔ)充:Python之通配符--提取文件中的內(nèi)容并輸出

前言:

我的學(xué)習(xí)進(jìn)度其實(shí)沒有那么快的,因?yàn)楝F(xiàn)在是網(wǎng)絡(luò)工程師實(shí)習(xí),只有晚上一點(diǎn)時(shí)間和周末有空,所以周一到周天的學(xué)習(xí)進(jìn)度很慢,今天之所以突然跳到通配符是因?yàn)楣ぷ餍枰篌w講一下我的工作需求:網(wǎng)絡(luò)工程師就是寫腳本然后導(dǎo)入不同的網(wǎng)絡(luò)設(shè)備中,我現(xiàn)在有一份現(xiàn)網(wǎng)正在使用的設(shè)備的命令,需要更換新的設(shè)備,但新設(shè)備跟舊設(shè)備(現(xiàn)網(wǎng)中正在使用的)不是同一個(gè)廠家的,導(dǎo)致他們的命令不兼容(知識,大體內(nèi)容是一樣的),所以我需要把舊設(shè)備中的Mac地址啦,ip啦,網(wǎng)關(guān)等全部提取出來并插入到新的命令模式中,現(xiàn)在開始完成上述需求(簡單的,只包含一點(diǎn)關(guān)于IP-MAC綁定的,用于DHCP自動分配ip地址時(shí)可以根據(jù)PC的MAC和VLAN來獲取特定的IP)

效果圖:

Python:通配符查找、拷貝文件的操作

舊設(shè)備中命令格式:

Python:通配符查找、拷貝文件的操作

變動的大體形式:

原:

ip source binding 0000-0000-0014 vlan 20 1.1.1.14 interface FastEthernet 0/14

新:

int g1/0/14ip source binding ip-address 1.1.1.14 mac-address 0000-0000-0014 vlan 20源代碼:

import ref = open(’C:/Users/Shinelon/Desktop/ceshi.txt’,’r’,encoding = ’utf-8’)x = (f.readlines())for i in range(0,51):s = x[i]mac = re.findall(’.{4}-.{4}-.{4}’, s)ip = re.findall(’d{1,3}.d{1,3}.d{1,3}.d{1,3}’, s)inter = re.findall(’0/d{1,2}’, s)vlan = re.findall(’vlan dd’, s)inter = ’’.join(inter)mac = ’’.join(mac)vlan = ’’.join(vlan)ip = ’’.join(ip)print('int g1/%s' % inter)print('ip source binding ip-address %s mac-address %s %s' % (ip, mac, vlan))

f.close()

解析

正則表達(dá)式,學(xué)網(wǎng)絡(luò)的時(shí)候接觸過,但比較淺,今天重新看了下各命令的含義,第一次寫,有些可以精簡的地方我都沒精簡,一個(gè)是太晚了沒時(shí)間,另一個(gè)就是能力有限,多多包涵。

整體思路

從原文件中逐行取出,試了好幾次,才弄好格式問題,必須txt,用word文檔會報(bào)編碼錯(cuò)誤,pycharm默認(rèn)的好像是uef-8,而word是gbk,導(dǎo)致不兼容,總之還得改軟件的編碼方式,我嫌太麻煩,同一使用txt,也挺方便的。

然后就是讀取文件的格式,應(yīng)該是open函數(shù)固定的,‘r’是指的只讀,不往文檔中寫(f.close()是我寫博客的時(shí)候剛加的,不知道對不對,就是關(guān)閉流,不關(guān)問題不大,報(bào)錯(cuò)就網(wǎng)上查查命令或刪除)。

讀取是readlines()(readline()沒有s只讀一行)讀到文件尾,返回值是列表,且一次性讀出(可以用循環(huán),那樣就要用readline()一行一行的讀)。

然后通過創(chuàng)建“s”字符串和for循環(huán)來一個(gè)一個(gè)的處理文件列表的內(nèi)容,之所以要用字符串是因?yàn)橥ㄅ浞恢С痔幚碜址∏彝ㄅ浞幚砗蟮姆祷刂禐榱斜怼?/p>

至于通配符規(guī)則,有點(diǎn)長也有點(diǎn)多,網(wǎng)上不少,可自行百度,我這里只提供思路。通配符匹配想要的數(shù)據(jù)(我這里提取了ip地址,mac地址,所屬vlan,在哪個(gè)接口下),然后分別用不同的列表承接這些值用于方便打印。

需要注意的是,這里的列表不需要加索引,加了會報(bào)錯(cuò),我也是搞了半天,因?yàn)檫@個(gè)列表是在for循環(huán)中的,每一次循環(huán)都相當(dāng)于重新賦值創(chuàng)建,所以不存在說列表會增長,直接打印全部即可(可在循環(huán)外建列表,在循環(huán)內(nèi)通過append方法增加列表長度)。

另一個(gè)需要注意的是,因?yàn)槭橇斜恚蛴〕鰜頃е癧’’]”,就很煩,不是我想要的命令那種一體化的,所以在這里我又查找到了join方法,屬于列表常用方法,就是新建字符串(我特意看了下類型,下面有圖說明),讓字符串賦值:列表,并改變列表的分隔符(默認(rèn)是單引號加逗號)為join前面單引號內(nèi)的參數(shù)(可以為空None)。

我去,突然想到我前面最后一句打印的其實(shí)不是列表而是字符串,這樣的話直接打印完整的一串毫無問題,前面的疑問解決,還是多總結(jié)的好啊,能發(fā)現(xiàn)不足,完善自己!

Join方法:

Python:通配符查找、拷貝文件的操作

(請忽略那幾個(gè)報(bào)錯(cuò),是因?yàn)樽詈蟮睦ㄌ柺侵形妮斎敕ǖ睦ㄌ柌蛔R別報(bào)的錯(cuò))

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 午夜影院黄色 | 91精品国产一区 | 国产中文字幕在线 | 国产精品视频区 | 另类自拍 | 黑人巨大精品欧美 | 精品免费久久 | 天天操天天操天天操天天操 | 美女久久久久久 | 欧美视频免费在线 | 午夜国产在线 | 国产超碰在线 | 亚洲天堂网在线观看 | 国产成人自拍一区 | 免费在线观看中文字幕 | 国产精品成人一区二区三区 | 成人免费看片在线观看 | 六月激情 | 日本一级片在线播放 | 国产亚洲精品久久久久久无几年桃 | 日韩av免费在线 | 成人久久网站 | 久久久久一区 | 日韩在线视频一区二区三区 | 国产区视频在线 | 四虎永久在线精品 | 欧美有码在线观看 | 日韩av手机在线免费观看 | 精品国产乱码久久久久久1区2区 | 97久久人人 | 欧美成人精品一区二区三区 | 一级高清毛片 | 国产精品久久久精品四季影院 | 亚洲97 | 久久中文字幕在线 | 在线天堂中文字幕 | 亚洲午夜久久久久久久久红桃 | 久久高清免费视频 | 在线看国产精品 | 一本一本久久a久久精品牛牛影视 | 精品福利在线观看 |