Python中常用功能的实现代码分享
生活随笔
收集整理的這篇文章主要介紹了
Python中常用功能的实现代码分享
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 1. 新建文件夾
- 2. 后臺運行并保存log
- 3. 文件讀取
- 4. 字符串判斷
- 5. 統計list元素出現次數
- 6. timestamp 轉換標準時間
- 7. 排序
- 8. 文件路徑獲取
- 9. 同一行刷新打印
- 10. PIL resize比opencv更清晰
- 11. base64轉opencv
1. 新建文件夾
if not os.path.exists(feature_dir):
os.makedirs(feature_dir)
2. 后臺運行并保存log
nohup python -u test.py > test.log 2>&1 & #最后的&表示后臺運行 #2 輸出錯誤信息到提示符窗口 #1 表示輸出信息到提示符窗口, 1前面的&注意添加, 否則還會創建一個名為1的文件 #最后會把日志文件輸出到test.log文件 #查看 tail -f test.log#如果要實時查看日志文件使用命令 cat test.log#查看全部輸出使用命令
3. 文件讀取
###1.python
#讀寫txt
with open(r'./data/user_dict.txt','r',encoding='utf-8') as f:
data = f.readlines()
#追加模式
with open(r'./data/user_dict.txt','a',encoding='utf-8') as f:
t = '你好'
f.write('\n'+t)
#按行讀取tsv / 內存大可以直接.readlines()
with open('./data/train.tsv',encoding = 'utf-8') as file:
line = file.readline()
limit = 0
while line and limit<10:
print(line)
limit+=1
line = file.readline()
###2.json 存儲dict
x = {..}
#save
with open(r"./x.json",'w') as f:
json.dump(x, f, ensure_ascii=False) #單行
print('done')
## 格式化
with open(r"result.json", 'w') as f:
json.dump(res, f, ensure_ascii=False, indent=4)
#read
with open(r"./x.json",'r') as f:
x = json.loads(f.readlines()[0])
#讀取格式化后的多行json
with open(r"./x.json",'r') as f:
x = json.load(f)
###3.numpy 存儲list
x = [x,]
np.save("./././x.npy",x)
x = np.load(r"./././x.npy")
###4.pandas
#read xlsx
data = pd.read_excel(r'xxxx.xlsx','Sheet1')
#dict to df
result = {x:1,y:2,..}
df = pd.DataFrame(list(result.items()), columns=['key','value'])
#save df
df.to_csv(r"./result.csv", index=False,header=True)
#read
df = pd.read_csv(r'./result.csv',encoding = 'gbk')
4. 字符串判斷
s.islower() #判斷是否所有字符小寫 s.isupper() #判斷是否所有字符大寫 s.isalpha() #判斷是否所有字符為字母 s.isalnum() #判斷是否所有字符為字母或數字 s.isdigit() #判斷是否所有字符為數字 s.istitle() #判斷是否所有字符為首字母大寫
5. 統計list元素出現次數
from collections import Counter
x = [1,2,3,2]
y= '1232'
Counter(x)
#>>Counter({2: 2, 1: 1, 3: 1}) #就是一個dict
Counter(y)
#>>Counter({'2': 2, '1': 1, '3': 1})
Counter('1232')['2']
#>>2
6. timestamp 轉換標準時間
# 把時間處理 以找到登陸時間
import time
def timestamp_datetime(value):
format = '%Y-%m-%d %H:%M:%S'
# value為傳入的值為時間戳(整形),如:1332888820
value = time.localtime(value)
## 經過localtime轉換后變成
## time.struct_time(tm_year=2012, tm_mon=3, tm_mday=28, tm_hour=6, tm_min=53, tm_sec=40, tm_wday=2, tm_yday=88, tm_isdst=0)
# 最后再經過strftime函數轉換為正常日期格式。
dt = time.strftime(format, value)
return dt
def datetime_timestamp(dt):
#dt為字符串
#中間過程,一般都需要將字符串轉化為時間數組
time.strptime(dt, '%Y-%m-%d %H:%M:%S')
## time.struct_time(tm_year=2012, tm_mon=3, tm_mday=28, tm_hour=6, tm_min=53, tm_sec=40, tm_wday=2, tm_yday=88, tm_isdst=-1)
#將"2012-03-28 06:53:40"轉化為時間戳
s = time.mktime(time.strptime(dt, '%Y-%m-%d %H:%M:%S'))
return int(s)
d = datetime_timestamp('2015-03-30 16:38:20')
print(d)
s = timestamp_datetime(1427704700)
print(s)
7. 排序
#方法1.用List的成員函數sort進行排序,在本地進行排序,不返回副本 #方法2.用built-in函數sorted進行排序(從2.4開始),返回副本,原始輸入不變 listX = [[1,4],[2,5],[3,3]] sorted(listX, key=lambda x : x[1]) #>>[[3, 3], [1, 4], [2, 5]] ### 兩個list按同意順序排序 list1 = [1, 2, 3, 4, 15, 6] list2 = ['a', 'b', 'c', 'd', 'e', 'f'] c = list(zip(list1,list2)) c.sort(reverse=True) #降序du list1[:],list2[:] = zip(*c) print(list1,list2)
8. 文件路徑獲取
path1 = os.getcwd() #最外層執行的main.py的路徑 path2 = os.path.dirname(os.path.realpath(__file__)) #當前py文件的絕對路徑
9. 同一行刷新打印
print("\r",object,end="",flush=True)
#e.g.
for i,img_name in enumerate(img_names):
print("\r",str(i)+"/"+str(len(img_names)),end="",flush=True)
10. PIL resize比opencv更清晰
img = cv2.imread("000000000113_0.jpg")
img = Image.fromarray(img)
img = img.resize((192,192))
img = np.array(img)
11. base64轉opencv
def imgToBase64(img_array):
# 傳入圖片為RGB格式numpy矩陣,傳出的base64也是通過RGB的編碼
img_array = cv2.cvtColor(img_array, cv2.COLOR_RGB2BGR) #RGB2BGR,用于cv2編碼
encode_image = cv2.imencode(".jpg", img_array)[1] #用cv2壓縮/編碼,轉為一維數組
byte_data = encode_image.tobytes() #轉換為二進制
base64_str = base64.b64encode(byte_data).decode("ascii") #轉換為base64
return base64_str
def base64ToImg(base64_str):
# 傳入為RGB格式下的base64,傳出為RGB格式的numpy矩陣
byte_data = base64.b64decode(base64_str)#將base64轉換為二進制
encode_image = np.asarray(bytearray(byte_data), dtype="uint8")# 二進制轉換為一維數組
img_array = cv2.imdecode(encode_image, cv2.IMREAD_COLOR)# 用cv2解碼為三通道矩陣
img_array = cv2.cvtColor(img_array, cv2.COLOR_BGR2RGB)# BGR2RGB
return img_array
到此這篇關于Python中常用功能的實現代碼分享的文章就介紹到這了,更多相關Python常用功能內容請搜索電腦知識網www.pcxun.com以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持電腦知識網www.pcxun.com!
總結
以上是生活随笔為你收集整理的Python中常用功能的实现代码分享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新能源汽车基金161028净现值
- 下一篇: 最便宜的路虎汽车多少钱