0
私はPythonスレッドを学習していますが、同時に古いスクリプトを改善しようとしています。Python2.7:パラレルモードのファイルをアンタッチする(スレッディング付き)
それの主要部分は、次のようになります。だから、
import tarfile, os, threading
def untar(fname, path):
print "Untarring " + fname
try:
ut = tarfile.open(os.path.join(path,fname), "r:gz")
ut.extractall(path)
ut.close()
except tarfile.ReadError as e: #in case it's not gziped
print e
ut = tarfile.open(os.path.join(path,fname), "r:*")
ut.extractall(path)
ut.close()
def untarFolder(path):
if path == ".":
path = os.getcwd()
print "path", path
ListTarFiles = serveMenu(path) # function what parse folder
# content for tars, and tar.gz
# files and return list of them
print "ListTarFiles ", ListTarFiles
for filename in ListTarFiles:
print "filename: ", filename
t = threading.Thread(target=untar, args = (filename,path))
t.daemon = True
t.start()
print "Thread:", t
同時にない一つ一つが、パラレルモードで指定したフォルダ内のすべてのファイルをuntarすることを目標。出来ますか?
出力:出力で
[email protected]:~/Toolz/untar$ python untar01.py -f .
path /home/bogard/Toolz/untar
ListTarFiles ['tar1.tgz', 'tar2.tgz', 'tar3.tgz']
filename: tar1.tgz
Untarring tar1.tgz
Thread: <Thread(Thread-1, started daemon 140042104731392)>
filename: tar2.tgz
Untarring tar2.tgz
Thread: <Thread(Thread-2, started daemon 140042096338688)>
filename: tar3.tgz
Untarring tar3.tgz
Thread: <Thread(Thread-3, started daemon 140042087945984)>
は、そのスクリプトがスレッドを作成する見ることができますが、それはすべてのファイルをuntarするものではありません。 キャッチは何ですか?
はい、その仕事。わかりました。ご協力ありがとうございます。 –