コードの部分で太文字になっているelif文のところで解決策が見いだせなくなっています。
row[5]の種類が2以上だったら
”○と○のタグが混在しています。”と表示するのが目的です。
○に入るパターンは#row[5]からひっぱってきたものです。
ただ、そのまま引数に与えることはできず…
ご教示をお願いいたします。
python
1import glob 2import os 3import tkinter as tk 4import datetime 5import subprocess 6import csv 7import math 8import shutil 9from tkinter import messagebox as mb 10from tkinter import filedialog 11import sys 12import collections 13import pandas as pd 14 15入力されたフォルダパスの取得 16def tag_check(): 17 fld1 = e1.get() #画像フォルダ 18 fld2 = e2.get() #csvファイル 19 20fld1内の画像枚数の確認 21 img_count=(len(os.listdir(fld1))-1) 22 print(img_count) 23 24fld2内のタグ個数の確認 25タグをすべて抽出させる→タグの個数をカウント 26 with open(fld2,encoding="utf-8") as f: 27 an_tag_list = [] 28 for row in csv.reader(f): 29 an_tag_list.append(row[5]) 30 31 del an_tag_list[0]#indexを削除 32 c=collections.Counter(an_tag_list) 33 print(c)#Counter({'RtoL': 736, 'RroL': 2}) 34 print(len(an_tag_list))#738 35 an_tag_count = len(an_tag_list) 36 count=int(c) 37 print(count) 38 39画像枚数とタグ個数が同数かチェック 40 if img_count == an_tag_count: 41 mb.showinfo('OK','正しくタグ付けできています') 42 pass 43 44#row[5]の種類が2以上だったら 45 elif img_count == an_tag_count: 46 mb.showwarning('警告',c+'\nタグが混在しています') 47 48 49 50 elif img_count != an_tag_count: 51 mb.showerror('警告','画像枚数とタグ個数があっていません') 52 53 54 55フォルダを開く処理 56def open_folder(num): 57 typ = [('CSVファイル','*.csv')] 58 if num == 1: 59 orgin_path = e1.get() 60 if orgin_path is None: 61 folder_path = 'C:' 62 else: 63 folder_path = orgin_path 64 65 folder_path = tk.filedialog.askdirectory(initialdir = folder_path) 66 e1.insert(tk.END,folder_path) 67 elif num == 2: 68 folder_path = e1.get() 69 file_path = tk.filedialog.askopenfilename(filetypes = typ,initialdir = folder_path) 70 e2.insert(tk.END,file_path) 71
回答1件
あなたの回答
tips
プレビュー