pythonで、同じフォルダにあるentファイルをtkinterで入力をさせると、そのファイルを開き、そのテキストの中から数字の範囲を抽出するプログラムはできたのですが、一つ一つファイル名を入力させるのはたくさんあるので手間がかかるので、同じフォルダの中のファイルを自動ですべて読み込むようにしたいのですが、どのようにすればよろしいでしょうか?わかりません。教えてください。お願いいたします。
import glob # テキストファイルのみを取得 glob.glob("*.ent")
で.entのみをリスト化してファイル名を取得取得する方法は分かりました。しかしそれを下記のコードのどこに入れればいいのか、そしてそれを順番に入力させて実行させるやり方が分かりません。
お願いします。
import tkinter from selenium import webdriver from time import sleep import requests from bs4 import BeautifulSoup import more_itertools as mit root=tkinter.Tk() root.title(u"CA") root.geometry("500x500") Static1 = tkinter.Label(text=u'タンパク質') Static1.pack() EditBox = tkinter.Entry(width=50) EditBox.insert(tkinter.END,"") EditBox.place(x=170,y=100) EditBox.pack() def btn_click(): path=EditBox.get() print("---",EditBox.get(),"---") serial_numbers_A = [] serial_numbers_B = [] def consecutive_groups(iterable): for group in mit.consecutive_groups(iterable): group = list(group) if len(group) == 1: yield group[0] else: yield group[0], group[-1] with open(path) as f: lines = f.readlines() lines_strip = [line.strip() for line in lines] #A側のCAの抽出 for A_and in lines: A_and=A_and.split() if A_and[0] == 'ATOM' and A_and[2] == 'CA' and A_and[4] == 'A': serial_numbers_A.append(int(A_and[5])) print("A側のCA") for Agroup in consecutive_groups(serial_numbers_A): print(list(Agroup)) #B側のCAの抽出 for B_and in lines: B_and=B_and.split() if B_and[0] == 'ATOM' and B_and[2] == 'CA' and B_and[4] == 'B': serial_numbers_B.append(int(B_and[5])) print(" ") print("B側のCA") for Bgroup in consecutive_groups(serial_numbers_B): print(list(Bgroup)) print(" ") print(Bgroup[0],Bgroup[1],Bgroup[1]-Bgroup[0]+Bgroup[0]) btn = tkinter.Button(root, text='タンパク質を調べる', command=btn_click) btn.place(x=170, y=200) root.mainloop()
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。