Day21.Pythonプロジェクトケース

プロジェクトプラクティス###

1、 ファイル名をバッチで変更する
2、 メールの送信---チェックインと受信を設定できます。
3、 アバター画像のバッチ合成
4、 在庫照会プログラムの開発---チェックインして受け取る
5、 宝くじプログラム(ソースコード専用)

0、 2億ドル相当の人工知能対話コード###

 # ! /usr/bin/env python
 # - *- coding:utf-8-*-while True:print(input().strip("それは...ですか??")+"!")

1、 Pythonバッチ変更ファイル名###

 #! /usr/bin/env python
 # - *- coding:utf-8-*-
 __ author__ ='JackFeng'
 
 # ファイル名をバッチで変更する
 # 画像ファイル名を一括で変更する
 # 特徴
  # フォルダ内のすべての画像名をバッチ編集する例を見てください
  # コメントは非常に詳細で普遍的なテンプレートであり、読者はお互いから推論を引き出し、テンプレートを適切に変更することができ、効果は驚くべきものです!
 
 import  os
 import sys
 import re
 
 def renameall():
  # filelist = os.listdir(r"ファイルパス") #変更するフォルダ
  filelist = os.listdir(r"C:\\Users\\66860\\Desktop\\テストファイル")print("修正する前に"+str(filelist)) #出力フォルダに含まれるファイル
  currentpath = os.getcwd() #プロセスの現在の作業ディレクトリを取得します
  os.chdir(r"C:\\Users\\66860\\Desktop\\テストファイル")  #現在の作業ディレクトリを、変更するフォルダの場所に変更します
 
  a=input("変更したい名前を入力してください:")
  num =1  #名前変数
  print(a)for fileName in filelist: #フォルダ内のすべてのファイルをトラバースします
   pat=".+\.(pdf|PDF)" #ファイル名を照合するための正規式#これが修正されたpdfケースです,したがって、pdf形式を使用してください
   pattern = re.findall(pat,fileName) #マッチする
   # print(pattern)
   os.rename(fileName,(str(a)+str(num)+'.'+pattern[0])) #ファイルの名前変更
   num +=1 #番号を変更して次の項目に進んでください
   # os.rename(fileName,(str(a)+'.'+ pattern[0]))print("=========---風-注文-制限---===========")
  os.chdir(currentpath) #プログラムを実行する前に、作業ディレクトリに戻します
  sys.stdin.flush() #更新
  print("変更後:"+str(os.listdir(r"C:\\Users\\66860\\Desktop\\テストファイル"))) #変更したフォルダに含まれるファイルを出力します
  print("==========--変更が完了しました--===========")renameall()

3、 アバターのバッチ合成###

 #! /usr/bin/env python
 # - *- coding:utf-8-*-
 __ author__ ='JackFeng'
 
 # @ Time    :2020/5/1810:14
 # @ Author  : JackFeng
 # @ FileName: Photo.py
 # @ Software: PyCharm
 # @ Blog    :http://www.a2data.cn/import PIL.Image as Image
 import os
 
 
 # 最初の画像の場所を定義します
 x =0
 y =0
 
 # ダウンロードしたアバターファイルを入手する
 curr_dir ="D://"
 ls = os.listdir(curr_dir +'1')print(ls)
 
 # 友達のWeChat壁サイズを設定する画像.new()方法。
 image = Image.new("RGB",(600,600))
 
 # WeChatの友達の写真を開く画像.open()方法。
 # img = Image.open(r"D:/1/1.png")
 
 # imgを使用してWeChatアバターを小さな画像にリセットします.resize()方法
 # img = img.resize((50,50), Image.ANTIALIAS)
 
 # 画像を使用して写真をWeChatウォールに貼り付けます.paste()方法。
 # image.paste(img,(x *50, y *50))
 
 # 最後に、完成した写真の壁を保存して画像を使用します.save()方法。
 # img = image.save("D:\\1\\WeChat_Friends.jpg")
 
 
 
 # フォルダの写真を繰り返します
 for file_names in ls:print(file_names)try:
   # 写真を1枚ずつ開く
   img = Image.open(curr_dir +"1/"+ file_names)print(img)
  except IOError:continueelse:
   # 画像のサイズを変更する
   img = img.resize((150,150), Image.ANTIALIAS)
   # 最終的な写真の壁に写真を貼り付けます
   image.paste(img,(x *100, y *150))
   # 1行に13枚の画像を設定
   x +=1if x ==6:
    x =0
    y +=1
 # 写真をWeChatとして保存_Friends.jpg
 img = image.save(curr_dir +"WeChat_Friends.jpg")

4、 宝くじの本###

 #! /usr/bin/env python # -*- coding:utf-8-*-__author__ ='Jack'
# @ Time    :2019/8/2211:07# @Author  : JackFeng# @Software: PyCharm# @Blog    :http://www.a2data.cn/classLuckgame:
  # ポップアップモジュールをインポートします
  import tkinter.messagebox as mbox
  # tkinterをインポートする
  import tkinter as tk
  # スレッドモジュールのインポート
  import threading
  import time
  def __init__(self):
   self.window = self.tk.Tk()
   self.window.title('DataScience-ラッキードロー')
   self.window.minsize(330,330)
 
   # 初期変数を設定する
   # インターフェースの設定
   self.set_label_btn()
   # 設定メニュー
   self.set_menu()
   # 賞品一覧
   self.gifts =[self.lab1, self.lab2, self.lab3, self.lab4, self.lab5, self.lab6, self.lab7, self.lab8, self.lab9,
      self.lab10, self.lab11, self.lab12]
   # # ループフラグを開くかどうか
   # self.isloop = False
   # ターンテーブルを終了するかどうか
   self.run_flag = False
 
   self.window.mainloop()
 
  # 設定メニュー
  def set_menu(self):
   # トータルメニューを作成
   menubar = self.tk.Menu(self.window)
   # ドロップダウンメニューを作成し、ファイルメニューを追加します
   filemenu = self.tk.Menu(menubar, tearoff=0)
   # メニューを作成するためのオプション
   filemenu.add_command(label="ゲームを終了する", command=self.window.quit)
 
   # 印刷作成者機能
   def show_author():
    self.mbox.showinfo(title='WeChatパブリックプラットフォーム:DataScience', message='DataScience:Ai_Craziest')
 
   filemenu.add_command(label="著者", command=show_author)
   # ファイルメニューをドロップダウンメニューとして一般メニューに追加し、アクションという名前を付けます
   menubar.add_cascade(label="オペレーティング", menu=filemenu)
   # 一般メニューを表示
   self.window.config(menu=menubar)
 
  def set_label_btn(self):
   self.lab1 = self.tk.Label(self.window, text='原則として', bg='red')
   self.lab1.place(x=20, y=20, width=60, height=60)
 
   self.lab2 = self.tk.Label(self.window, text='Hive\nプログラミングガイド', bg='white')
   self.lab2.place(x=90, y=20, width=60, height=60)
 
   self.lab3 = self.tk.Label(self.window, text='IDEA\n操作マニュアル', bg='white')
   self.lab3.place(x=160, y=20, width=60, height=60)
 
   self.lab4 = self.tk.Label(self.window, text='MySql\nは知っている必要があります', bg='white')
   self.lab4.place(x=230, y=20, width=60, height=60)
 
   self.lab5 = self.tk.Label(self.window, text='SQL\nCook', bg='white')
   self.lab5.place(x=230, y=90, width=60, height=60)
 
   self.lab6 = self.tk.Label(self.window, text='Python\nCook', bg='white')
   self.lab6.place(x=230, y=160, width=60, height=60)
 
   self.lab7 = self.tk.Label(self.window, text='Python\n機械学習', bg='white')
   self.lab7.place(x=230, y=230, width=60, height=60)
 
   self.lab8 = self.tk.Label(self.window, text='Python\nマシントレーニング', bg='white')
   self.lab8.place(x=160, y=230, width=60, height=60)
 
   self.lab9 = self.tk.Label(self.window, text='ビッグデータ\nインタビューの質問', bg='white')
   self.lab9.place(x=90, y=230, width=60, height=60)
 
   self.lab10 = self.tk.Label(self.window, text='機械学習\n個人メモ', bg='white')
   self.lab10.place(x=20, y=230, width=60, height=60)
 
   self.lab11 = self.tk.Label(self.window, text='データマイニング\nコンセプトとテクノロジー', bg='white')
   self.lab11.place(x=20, y=160, width=60, height=60)
 
   self.lab12 = self.tk.Label(self.window, text='Handbook\n(元の)', bg='white')
   self.lab12.place(x=20, y=90, width=60, height=60)
 
   # スタートボタン
   self.btn_go = self.tk.Button(self.window, text='開始', command=self.start_stak)
   self.btn_go.place(x=90, y=125, width=50, height=50)
   # 停止ボタン
   self.btn_stop = self.tk.Button(self.window, text='終わり', command=self.stop_run)
   self.btn_stop.place(x=160, y=125, width=50, height=50)
 
  def run_gifts(self):
   # whileループカウントの変数i
   i =0
   # すべてのラベルをループする,ラベルの色を順番に変更します,赤くする
   while True:if self.run_flag:
     self.mbox.showinfo(title='ご清聴ありがとうございました、親切なリマインダー', message='DataScience:取得おめでとうございます:'+ self.gifts[i -1]['text']+'電子書籍')
     self.mbox.showinfo(title='それがあなたを助けるならば、好きで共有してください', message='賞品を受け取るには、WeChatパブリックアカウント:DataScienceにアクセスしてください。 ! !')
     self.mbox.showinfo(title='さらにニーズがある場合は、この記事をMomentsに共有してください', message='スクリーンショットを3時間以上保持し、DataScienceバックエンドに送信すると、3つのコピーを取得できます。 !')
     self.mbox.showinfo(title='この公式アカウントの最初の小さなやり取り、ご参加いただきありがとうございます', message='ご参加ありがとうございました。次号はもっとワクワクします! !')
     # サイクリックターンテーブルのパラメータをリセットするかどうか
     self.run_flag = False
     returntry:
     # 遅延操作を追加します
     self.time.sleep(0.1)
     # すべてのラベルをループする,すべてのラベルの色を白に変更します
     for v in self.gifts:
      v['bg']='white'
     self.gifts[i]['bg']='red'
     i +=1
     # ラベルコンポーネントカウントがゼロにリセットされます
     if i >=len(self.gifts):
      i =0
    except:
     pass
 
  def stop_run(self):
   self.run_flag = True
 
  # スレッドを開始し、ループ関数を個別に実行します
  def start_stak(self):
   # 新しいスレッド
   tread = self.threading.Thread(target=self.run_gifts)
   # スレッドを開始
   tread.start()
   # # ループスレッドをオンにするフラグ
   # self.isloop = True
 
 
 # Luckgameゲームオブジェクトを呼び出す
 nsf =Luckgame()

5、 ローリングドロー###

 #! /usr/bin/env python
 # - *- coding:utf-8-*-
 __ author__ ='Jack'
 
 # @ Time    :2020/6/2211:07
 # @ Author  : JackFeng
 # @ FileName: Lotto.py
 # @ Software: PyCharm
 # @ Blog    :http://www.a2data.cn/import sys
 if sys.version_info[0]==2:import Tkinter
  from Tkinter import*else:import tkinter as Tkinter
  from tkinter import*import random
 
 data =['Kath','大きなカエデ','Jack','Shon','DuRuo']
 going = True
 is_run = False
 
 
 def lottery_roll(var1, var2):
  global going
  show_member = random.choice(data)
  var1.set(show_member)if going:
   window.after(50, lottery_roll, var1, var2)else:
   var2.set('おめでとう{} !!!'.format(show_member))
   going = True
   return
 
 
 def lottery_start(var1, var2):
  global is_run
  if is_run:return
  is_run = True
  var2.set('ラッキーですか? 。 。')lottery_roll(var1, var2)
 
 
 def lottery_end():
  global going, is_run
  if is_run:
   going = False
   is_run = False
 
 
 if __name__ =='__main__':
  window = Tkinter.Tk()
  window.geometry('405x320+250+15')
  window.title('DataScienceローリングロッタリー')
 
  bg_label =Label(window, width=70, height=24, bg='#ECf5FF')
  bg_label.place(anchor=NW, x=0, y=0)
 
  var1 =StringVar(value='始めよう')
  show_label1 =Label(window, textvariable=var1, justify='left', anchor=CENTER, width=17, height=3, bg='#BFEFFF',
       font='イタリック-40 bold', foreground='black')
  show_label1.place(anchor=NW, x=21, y=20)
  var2 =StringVar(value='ラッキーですか? 。 。')
  show_label2 =Label(window, textvariable=var2, justify='left', anchor=CENTER, width=38, height=3, bg='#ECf5FF',
       font='イタリック-18 bold', foreground='red')
  show_label2.place(anchor=NW, x=21, y=240)
 
  button1 =Button(window, text='開始', command=lambda:lottery_start(var1, var2), width=14, height=2, bg='#A8A8A8',
      font='ソンティ-18 bold')
  button1.place(anchor=NW, x=20, y=175)
  button2 =Button(window, text='終わり', command=lambda:lottery_end(), width=14, height=2, bg='#A8A8A8',
      font='ソンティ-18 bold')
  button2.place(anchor=NW, x=232, y=175)
 
  window.mainloop()

Recommended Posts

Day21.Pythonプロジェクトケース
Day18.pythonファイル/ディレクトリ