Nファイルを開く必要があり、N-newファイルを取得します。私はGUIのtkinterのフリーズを防ぐためにスレッドを使用することで、時間に1つのファイルを処理します。実際にファイルを処理するには、約1〜2分待つ必要があります。以下のテストコードで スレッドを使用して一度に1つのファイルを読み書きする方法
open file1-->read-->create new file1-->close file
open file2-->read-->create new file2-->close file
open file3-->read-->create new file3-->close file
、読み取りおよび書き込みモードで開いたファイルが存在しない、私は単純なリストを使用します。 whileループでカウントが大きな数である場合、私は右の結果を持っていませんでした。解決
#I expect an output like:
#100000000 file1 test release
#100000000 file2 test release
#100000000 file3 test release
#Indeed I obtain strange result like file3 as first result not in third position
from tkinter import filedialog
from tkinter import *
from tkinter import ttk
import threading, time
def th(lol):
global mythread, lock
mythread = threading.Thread(target=aprifil2, args=(lol,))
mythread.start()
def aprifil2(lol):
global lock, m
lock.acquire()
try:
s=0
while(s<100000000):
s+=1
print(s, i)
scr()
finally:
print('release\n')
try:
lock.release()
except RuntimeError:
print('end')
def scr():
print('test\n')
def ok():
global lock, i
lock = threading.Lock()
m=['file1','file2', 'file3']
for i in m:
lol=i
th(lol)
time.sleep(1)
finestra= Tk()
button_cerca = ttk.Button(finestra, text = "avvia", command = ok)
button_cerca.pack()
button_a = Entry(finestra)
button_a.pack()
あなたは3つのファイルが順次処理されたいわけ?その場合、1つのスレッドを作成し、3つのスレッドではなく3つのファイルを処理する必要があります。 –
はい。 1つのスレッドはenoghtですが、私はtkinter GUIがフリーズしないようにする必要があります...とにかく私はどこで間違っているのか分かりません。 – lausent