python常用函數(shù)

1.?os.path.split(file_path)

只會識別file_path最后一個‘/’阅虫,并以此切割史辙,生成一個列表

例如:

>json_file = "/opt/data/json_file/example.json"

>os.path.split(json_file)

得到 ('/opt/data/json_file', 'example.json')

2. os.walk(path)

遍歷path下所有的目錄和文件

例如:

>path = '/data1/data/'

>for root,dirs,files in os.walk(path):

? ? print('root:{}'.format(root))

? ? print('dirs:{}'.format(dirs))

? ? ?print('files:{}'.format(files))

得到

root:/data1/data/? #第一個root為輸入path的完整路徑

dirs:['hello', 'hello1'] #在第一個完整路徑下,存在hello和hello1兩個目錄也就是文件夾

files:['hello.py', '123.txt']#在第一個完整路徑下有兩個文件

root:/data1/data/hello #第二個root為hello的完整路徑

dirs:[] #在hello路徑下沒有目錄

files:['a.txt'] #在hello路徑下押框,存在一個a.txt文件

root:/data1/data/hello1 #第三個root為hello1的完整路徑

dirs:[] #在hello1下沒有目錄

files:[] #在hello1下也沒有文件

3. os.walk 和?os.path.splitext 及os.path.join

功能:將給定目錄及子目錄下符合要求的文件都放到列表中
>final_path_list = []

>pcap_dir = '/data1/data/'

>for parent, dirnames, filenames in os.walk(pcap_dir, followlinks=True):

? ? print('parent:{}'.format(parent))

? ? print('dirnames:{}'.format(dirnames))

? ? print('filenames:{}'.format(filenames))

? ? for filename in filenames:

? ? ? ? print('filename:{}'.format(filename))

? ? ? ? if os.path.splitext(filename)[1] == '.cap' or os.path.splitext(filename)[1] == '.pcap':

? ? ? ? ? ? file_path = os.path.join(parent, filename)

? ? ? ? ? ? final_path_list.append(file_path) #得到所有文件的絕對路徑

得到

parent:/data1/data/

dirnames:['hello', 'hello1']

filenames:['hello.py', '123.pcap']

filename:hello.py

filename:123.pcap

parent:/data1/data/hello

dirnames:[]

filenames:['a.txt', '1.pcap', '2.pcap']

filename:a.txt

filename:1.pcap

filename:2.pcap

parent:/data1/data/hello1

dirnames:[]

filenames:['3.pcap', '4.pcap']

filename:3.pcap

filename:4.pcap

>?final_path_list

得到

['/data1/data/123.pcap',

'/data1/data/hello/1.pcap',

'/data1/data/hello/2.pcap',

'/data1/data/hello1/3.pcap',

'/data1/data/hello1/4.pcap']

4. 將json文件以標準DataFrame方式輸出

例如:

>primal_json = {'File_name':[],'srcIP':[],'dstIP':[]}

>primal_json['File_name'].append('A')

>primal_json['srcIP'].append('10.1.2.32')

>primal_json['dstIP'].append('132.21.32.12')

>df_primal = pd.DataFrame(primal_json)

>df_primal


pig:df_primal

5. 將字典鍵值對中的鍵變?yōu)樾懜冶纾胰绻邢聞澗€“_”,替換為“-”

>new_header_dict = {}

>for k, v in header.items():

? ? new_header_dict[k.lower().replace('_','-')] = v

6. 字典的寫入和讀取

1) 將字典寫入txt文件

>import json

>dict = {"Alice":97,"Bob":98,'300':{'sig':['abc'],'file':'1.txt'},'family':'UK'}

>json_str = json.dumps(dict) #dumps

>with open('/data/test_dict.txt', 'w') as f:

? ? >f.write(json_str)

打開txt文件顯示

{"Alice": 97, "Bob": 98, "300": {"sig": ["abc"], "file": "1.txt"}, "family": "UK"}

2)將txt文件中的字典讀出來

>json_file = "/data/test_data.txt"

>with open(json_file,'r')as f:

? ? >json_lines = f.read()

? ? >dic = json.loads(json_lines) #json.loads()是用來讀取字符串

>dic

顯示

{'300': {'file': '1.txt', 'sig': ['abc']},

'Alice': 97,

'Bob': 98,

'family': 'UK'}

或者

>with open("/data/test_data.txt",'r')as f:

? ? >sig = json.load(f)? # json.load()是用來讀取字典文件

同樣顯示

{'300': {'file': '1.txt', 'sig': ['abc']},

'Alice': 97,

'Bob': 98,

'family': 'UK'}

7.針對dataframe想使得一列是空列表

例如:

>data={"one":np.random.randn(4),"two":np.linspace(1,4,4),"three":['zhangsan','李四',999,0.1]}

>df=pd.DataFrame(data,index=[1,2,3,4])

得到


pig: df

想在df的后面一列添加空列表(每一行都是空列表)


pig: df_null

需要如下操作:

>df['null_list'] = [[] for _ in range(len(df))]

其實df['null_list']的賦值可以是列表如[1,2,3,4]

這里需要變成[[],[],[],[]]

8.?maxsplit=1的使用

maxsplit = 1將字符串從第一個空格切開逛万,生成空格前和空格后兩部分子串

例如:

>'1,2,3'.split(',')

得到?['1', '2', '3']

>'1 2 3'.split(maxsplit=1)

得到?['1', '2 3']

9. str.isdigit()

檢查字符串是否只由數(shù)字組成

例如:

>str = "123456"

>print(str.isdigit())

得到? True

>str = '123hello'

>print(str.isdigit())

得到? False

10. eval函數(shù)

用來執(zhí)行一個字符串表達式泳猬,并返回表達式的值

首先輸入是字符串

例如:

>x = 7

> eval( '3 * x' )

得到? 21

再例如:

>df['Request-Header-Dict'].iloc[0]

"{'host': 'bublikiadministrator.com', 'user-agent': '_', 'method': 'GET', 'path': '/?&v=old_load&s=2433', 'http-version': 'HTTP/1.1'}" #注意是字符串

>df['Request-Header-Dict'] = df['Request-Header-Dict'].map(eval)

得到?

{'host': 'bublikiadministrator.com',

'http-version': 'HTTP/1.1',

'method': 'GET',

'path': '/?&v=old_load&s=2433',

'user-agent': '_'} # 變成真實的字典了

可以認為eval函數(shù)是去除字符串含義,變?yōu)檎鎸嵉谋磉_含義

11. setdefault函數(shù)

字典 setdefault() 函數(shù)和?get()方法?類似, 如果鍵不存在于字典中宇植,將會添加鍵并將值設為默認值得封,如果字典中包含有給定鍵,則返回該鍵對應的值指郁,否則返回為該鍵設置的值忙上。

>dict = {'runoob': '菜鳥教程', 'google': 'Google 搜索'}

>print('value:{}'.format(dict.setdefault('runnoob',None)))

得到??value:None

>print('value:{}'.format(dict.setdefault('runoob',None)))

得到??value:菜鳥教程

>print('value:{}'.format(dict.setdefault('google','GOOGLE')))

得到??value:Google 搜索

12.?urllib.parse.urlparse解析url

例如:

> import urllib.parse

>?url = 'http://bublikiadministrator.com/?&v=old_load&s=2433'

>parse_url = urllib.parse.urlparse(url)

>parse_url

得到:ParseResult(scheme='http', netloc='bublikiadministrator.com', path='/', params='', query='&v=old_load&s=2433', fragment='')

>url_host = parse_url.netloc

>url_host

得到:'bublikiadministrator.com'

>url_query = parse_url.query

>url_query

得到:?'&v=old_load&s=2433'

想獲得url里的請求參數(shù)和值

>lst_url_query_keys = urllib.parse.parse_qsl(parse_url.query)? #以列表形式輸出

>lst_url_query_keys?

得到:[('v', 'old_load'), ('s', '2433')]

>dict_url_query_keys = urllib.parse.parse_qs(parse_url.query) #以字典形式輸出

>dict_url_query_keys?

得到:{'s': ['2433'], 'v': ['old_load']}

13. AI模型的fit()、transform()及fit_transform()

Fit():Method calculates the parameters μ and σ and saves them as internal objects.

Transform():Method using these calculated parameters apply the transformation to a particular dataset.

Fit_transform():joins the fit() and transform() method for transformation of dataset.

注意:必須先fit再transform? 而fit_transform等同于 先fit再transform

例如:

>import pandas as pd

>import numpy as np

>from sklearn.decomposition import PCA

>x1 = pd.DataFrame(np.arange(9).reshape((3,3)),index=['a','b','c'],columns=['one','two','three'])

>x1

pig: x1

>pca = PCA(n_components=1)

>m1 = pca.fit(x1)

>newx1 = m1.transform(x1)

>newx1

得到:array([[ 5.19615242],

? ? ? [ 0.? ? ? ? ],

? ? ? [-5.19615242]])

>newx1_1 = pca.fit_transform(x1)

>newx1_1

得到:array([[ 5.19615242],

? ? ? [-0.? ? ? ? ],

? ? ? [-5.19615242]])

結果是一樣的

而如果使用x1數(shù)據(jù)來訓練模型闲坎,用于測試其他數(shù)據(jù)疫粥,則使用m1.transform即可

>a=[[1,2,3],[5,6,7],[4,5,8]]

>x2 = x2=pd.DataFrame(np.array(a),index=['a','b','c'], columns=['one','two','three'])?

>x2

pig:x2


>newx2_ = pca.fit_transform(x2)

>newx2_

得到:

array([[ 4.45942145],

? ? ? [-2.42594197],

? ? ? [-2.03347948]])

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市腰懂,隨后出現(xiàn)的幾起案子梗逮,更是在濱河造成了極大的恐慌,老刑警劉巖绣溜,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件慷彤,死亡現(xiàn)場離奇詭異,居然都是意外死亡怖喻,警方通過查閱死者的電腦和手機底哗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锚沸,“玉大人艘虎,你說我怎么就攤上這事≈渫拢” “怎么了野建?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長恬叹。 經(jīng)常有香客問我候生,道長,這世上最難降的妖魔是什么绽昼? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任唯鸭,我火速辦了婚禮,結果婚禮上硅确,老公的妹妹穿的比我還像新娘目溉。我一直安慰自己明肮,他們只是感情好,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布缭付。 她就那樣靜靜地躺著柿估,像睡著了一般。 火紅的嫁衣襯著肌膚如雪陷猫。 梳的紋絲不亂的頭發(fā)上秫舌,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天,我揣著相機與錄音绣檬,去河邊找鬼足陨。 笑死,一個胖子當著我的面吹牛娇未,可吹牛的內容都是我干的墨缘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼零抬,長吁一口氣:“原來是場噩夢啊……” “哼飒房!你這毒婦竟也來了?” 一聲冷哼從身側響起媚值,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎护糖,沒想到半個月后褥芒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡嫡良,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年锰扶,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寝受。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡坷牛,死狀恐怖,靈堂內的尸體忽然破棺而出很澄,到底是詐尸還是另有隱情京闰,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布甩苛,位于F島的核電站蹂楣,受9級特大地震影響,放射性物質發(fā)生泄漏讯蒲。R本人自食惡果不足惜痊土,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望墨林。 院中可真熱鬧赁酝,春花似錦犯祠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至肪笋,卻和暖如春月劈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背藤乙。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工猜揪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坛梁。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓而姐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親划咐。 傳聞我的和親對象是個殘疾皇子拴念,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內容