【python 學習筆記】

1,json,pickle 序列化,反序列化

  1. json.dumps()
  2. json.loads()

遇到的問題:
練習時一直報錯:屬性異常AttributeError: module 'json' has no attribute 'dumps'
原因: 文件名我取名爲了json.py.
Python找import json的順序是:
首先我們要了解python中import引入模塊的原理機制。當我們執行一行 from package import module as mymodule 命令時,Python解釋器會查找package 這個包的module模塊,並將該模塊作爲 mymodule 引入到當前的工作空間。所以import語句主要是做了二件事:
查找相應的module
加載module到local namespace
在import的第一個階段,主要是完成了查找要引入模塊的功能。查找時首先檢查 sys.modules (保存了之前import的類庫的緩存),如果module沒有被找到,則按照下面的搜索路徑查找模塊:
.py 所在文件的目錄
PYTHONPATH 中的目錄
python安裝目錄,UNIX下,默認路徑一般爲/usr/local/lib/python/
3.x 中文件內容
也就是說,當我們import json的時候,它會先搜索json.py所在目錄有沒有對應的模塊,由於我們命名的json.py與json模塊文件重名,所以會誤以爲我們自己創建的json.py即爲json模塊文件,所以會出現這樣的錯誤。
解決方法:改掉文件名。不要使用python的庫名,內建函數名等關鍵字作爲文件名

**

2,import sys,os**

os.path.abspath() 返回絕對路徑。
os.path.dirname() 返回當前路徑的目錄。

3,time,datetime
時間有三種表示方法:
時間戳 54594275742572 可以反換算成格式化時間。
格式化時間 2019-02-49 12:34:00
元組,struct_time,如下time.localtime()返回的格式。
struct_time元組共有9個元素共九個元素:(年,月,日,時,分,秒,一年中第幾周,一年中第幾天等)
time.struct_time(tm_year=2019, tm_mon=11, tm_mday=5, tm_hour=15, tm_min=52, tm_sec=7, tm_wday=1, tm_yday=309, tm_isdst=0)
tm_wday(0到6 (0是週一),一週的第幾日)
tm_yday(這一年的第幾年,已經309天,總共365天。)
tm_isdst dst 是指夏令時,daylight saving time

結構化時間裏調用單獨的年,月日時。

s = time.localtime()
s.tm_mon #單獨的月時。
11 #返回11月

時間戳轉換
24395775/3600/24/365 +1970 即得出當前年份。

time.mktime()
time.strftime()
time.strptime()
time.localtime()
time.gmtime()

4,random
import random
import string

隨機整數:

print random.randint(1,50)

隨機選取0到100間的偶數:

print random.randrange(0, 101, 2)

隨機浮點數:

print random.random() #0-1之間的浮點數。
print random.uniform(1, 10)

隨機字符:選取其中的隨機一個字符

print random.choice('abcdefghijklmnopqrstuvwxyz!@#$%^&*()')

多個字符中生成指定數量的隨機字符:

print random.sample('zyxwvutsrqponmlkjihgfedcba',5)

從a-zA-Z0-9生成指定數量的隨機字符:

ran_str = ''.join(random.sample(string.ascii_letters + string.digits, 8))
print ran_str

多個字符中選取指定數量的字符組成新字符串:

print ''.join(random.sample(['z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a'], 5))

隨機選取字符串:

print random.choice(['剪刀', '石頭', '布'])

打亂排序

items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print random.shuffle(items)

random.randint() #用於生成一個指定範圍內的整數。

5,os

os.chdir(r'/') # r爲轉義。 切換當前目錄。
os.getcwd() #得到當前目錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章