python秒表小项目_适合新手练习的几个python小项目
生活随笔
收集整理的這篇文章主要介紹了
python秒表小项目_适合新手练习的几个python小项目
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
關于python練習的小項目,其實就是一些常用的模塊的針對練習
一、找出電腦中遺忘的大文件
# !/usr/bin/env python # _*_ coding:utf-8 -*- import osdef old_file(path, file_size): # 傳入路徑,和規定的文件大小閾值for dirpath, dirnames, filenames in os.walk(path): # os.walk 用法for target_file in filenames:target_file = os.path.join(dirpath, target_file) # 拼接規定目錄下所有文件if not os.path.isfile(target_file): # 異常處理,有的不一定是文件continuesize = os.path.getsize(target_file) # 獲取該文件大小,為下面作比對做準備if size > file_size:size = size//(1024 * 1024) # 轉換成MBsize = '%dMB' %sizeprint('文件路徑:%s 大小:%s'%(target_file, size)) if __name__ == '__main__':print("建議這里直接賦值粘貼即可")files = input("請輸入文件路徑:")size = int(input('輸出規定的大小(單位MB):'))size = size * 1024 *1024 # 輸入的大小化為MBtry: # 異常處理,防止輸入錯誤old_file(files, size)except:print("輸入的路徑有誤")輸出樣例:
找出遺忘的大文件輸出樣例二、制作密碼生成器
# !/usr/bin/env python # _*_ coding:utf-8 -*- import random as r # random模塊的使用 def toatl(a,b,c,d):sum_ = upper_(a) + lower_(b) + plot_(c) + nums_(d) # 調用下面的函數sum_ = ''.join(r.sample(sum_, len(sum_))) # 將sum_內容打亂,并將返回的列表作為字符串輸出print(sum_) def upper_(count): upp = 'QWERTYUIOPASDFGHJKLZXCVBNM'return ''.join(r.choices(upp, k = count)) # 從upp中隨機選出a個返回 def lower_(count):low = 'qwertyuiopasdfghjklzxcvbnm'return ''.join(r.choices(low, k=count)) # 從low中隨機選出b個返回 def plot_(count):pl = '!#$%&*.'return ''.join(r.choices(pl, k=count)) # 從pl中隨機選出c個返回 def nums_(count):nm = '1234567890'return ''.join(r.choices(nm, k=count)) # 從nm中隨機選出d個返回 if __name__ == '__main__':toatl(1,3,1,8) #輸入想要隨機生成的密碼對應大寫字母個數,小寫字母個數,特殊符號個數,數字個數輸出樣例:
根據代碼我的隨機個數分別是1,3,1,8三、海龜畫美國隊長的盾
# !/usr/bin/env python # _*_ coding:utf-8 -*-import turtle as tl # 導入turtle def circle_(): # 先畫圓col = ['red', 'white', 'red', 'blue'] # 定義顏色rad = [200,150,100,50] # 分別定義圓的半徑tl.penup() # 抬筆tl.goto(0,-200) # 定義初始位置top = -150 # 定義一個增加的變量,調整圓的位置for i in range(4): # 美國隊長的盾,四個圓tl.fillcolor(col[i]) # 填充剛剛設置好的顏色tl.begin_fill() # 開始填充tl.circle(rad[i]) # 畫圓tl.end_fill() # 填充結束tl.goto(0, top) # 位置上移toptop += 50 # 調整top大小 def star(): # 畫星星tl.goto(-46,15) # 參數自己調試tl.fillcolor('white') # 白色的星星tl.begin_fill() # 開始填充for _ in range(5): # 參數自己調試tl.forward(95)tl.right(144)tl.end_fill()tl.done() # 畫完收筆,保持畫面 if __name__ == "__main__":circle_() #調用兩個函數star()輸出樣例:
四、為下載的內容添加進度條
import requestsdef download_file(url, path):r = requests.get(url, stream=True) # 鏈接地址,獲取內容賦值給rcontent_size = int(r.headers['content-length']) # 獲取將要下載的內容的總長度print('下載開始')with open(path, "wb") as f: # 開始把內容寫入到path中,格式為wb,賦值給 fn = 1;for chunl in r.iter_content(chunk_size=1024): # 邊下載邊存硬盤,大小可修改,單位為Bloaded = (n * 1024.0 / content_size) * 100 # 進度條f.write(chunl) # 寫入文件print('r' + '已下載{:.2f}%'.format(loaded), end='', flush=True) # 調整輸出內容覆蓋n += 1 # 每次下載完+1# 不能同時兩行printif __name__ == "__main__"download_file("https://vd4.bdstatic.com/mda-khkkr38rhxhf5sms/mda-khkkr38rhxhf5sms.mp4", './dome5.mp4')# 路徑+視頻源地址輸出樣例:
五、字符畫的轉變
# !/usr/bin/env python # _*_ coding:utf-8 -*-from PIL import Image # pillow模塊char_set = 'Iloveyou' # 定義字符畫要寫的字lh = Image.open("imageschar_loveheart.png") # 打開預存好的圖片 lh = lh.resize((70, 30), Image.ANTIALIAS) # 調整尺寸大小,后面參數防止失真 lh = lh.convert('L') # 轉為灰度圖 lh.save('imagesloveheart_1.png') # 存儲def set_gray(gray1, count1):if gray1 >= 210: # 該數值調試得出,注意字符畫背景要求為純色return ' 'else:return char_set[count1]text = '' count = -1 # 置一個-1的參數,下面會用到count值不斷上調位置 for i in range(lh.height):for j in range(lh.width): # 分別獲取圖片坐標,像素的位置count += 1gray = lh.getpixel((j, i)) # 獲取位置的RGBif isinstance(gray, tuple):gray = int(0.2126 * gray[0] + 0.7152 * gray[1] + 0.0722 * gray[2])# 參數調試所得# print(gray)if count == len(char_set): #如果讀完一行,則跳行,count值為0count = 0text += set_gray(gray, count) text += 'n' # 輸出換行,讀取下一行with open('pic_loveheart.txt', 'w') as f: # 存入文檔f.write(text)輸出樣例:
我本地存有心的圖片,網上找即可,注意ps成純色背景六、簡單的小爬蟲
# !/usr/bin/env python # _*_ coding:utf-8 -*-import requests import pprint import time import os from urllib import requestclass Haokanshipin(object): # 定義一個好看視頻的類def __init__(self, game):self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0'} # 請求頭self.url = "https://haokan.baidu.com/videoui/api/videorec?tab=game_%s&act=pcFeed&pd=pc&num=15&shuaxin_id=%d" % (game, time.time()) # 抓包發現內容和時間戳def makepath(self):if not os.path.exists('./好看視頻短視頻'):os.mkdir('./好看視頻短視頻') # 創建目錄def get_data(self):res = requests.get(url=self.url, headers=self.headers) # 爬取內容response = res.json() # 轉化為json格式,抓包發現是json格式,所以轉換# pprint.pprint(response)response_list = response['data']['response']['videos'] # 剝洋蔥,獲取連接的列表for content in response_list:title = content['title'] + '.mp4' # 標題play_url = content['play_url'] # 路徑play_path = './好看視頻短視頻' + '/' + title # 拼接好得到的本地路徑print('%s正在下載中' % title)request.urlretrieve(play_url, play_path) #下載,文件較大,也可二進制分塊寫入print('%s下載成功' % title)def run(self): # 執行self.makepath()self.get_data()if __name__ == '__main__':print('現在支持現在游戲系列有英雄聯盟,和平精英,王者榮耀,第五人格,明日之后,穿越火線, 迷你世界')print('-----------------------------------------------------------------------------------')game_list = {'王者榮耀': 'wzry', '和平精英': 'hpjy', '第五人格': 'dwrg', '明日之后': 'mrzh','QQ飛車': 'qqfc', '英雄聯盟': 'yxlm','穿越火線': 'cyhx', '迷你世界': 'mnsj'} #抓包所得支持的內容,通過字典轉化為url需要的內容game = input('輸入你想要下載的游戲視頻(輸入游戲全稱哦):')try: # 異常處理game = game_list[game]except:print('請檢查您輸入的游戲名是否正確')hksp = Haokanshipin(game) # 實例化hksp.run() # 執行代碼輸出樣例:
以上都是比較簡單適合新手練習的小項目,主要涉及os模塊,pillow模塊,turtle海龜繪圖模塊,random模塊,和爬蟲有關的 requests和xpath模塊。
希望對新手的學習有所幫助,最后(再來一遍QWQ),假期來臨,個人想要收幾個入門學習python的新手,本人主要是爬蟲方向,如果有意,可以加我個人Q:2135432606,記得備注知乎
總結
以上是生活随笔為你收集整理的python秒表小项目_适合新手练习的几个python小项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用户画像标签维度_神策数据钟秉哲:一文了
- 下一篇: 940mx黑苹果驱动_专业黑苹果系统安装