2016-03-30 29 views
2

Bir klasördeki (.apk'in) birkaç dosyasında bir komut istemi komutunu çalıştırmam gerekiyor. Bir dizinde birden çok metin dosyasını basmak için başarılı bir şekilde kullandım ama os.system ile kullandığımda hiçbir şey olmuyor. Os.system ile kullanmak istediğim komut satırı komutunu tek bir dosyada (.apk) başarıyla kullandım. Herhangi bir yardım?Can glob os.system ile birlikte kullanılabilir mi?

+0

Neyin yanlış olabileceği çok net değil. Bize neyin işe yaradığını ve neyin olmadığını gösterebilir misin? Subprocess.call() yöntemini kullanmayı denediniz mi? Os.system() 'in yeni' sürümüdür. –

+0

Çalışma Glob: glob.glob içinde dosya için ithalat glob ('* txt.'): \t txt = open (dosya adı) \t baskı (txt.read()) – Chinmay

+0

Çalışma os.system: ithalat os os.system ("java -Xmx4g -cp soot-trunk.jar; soot-infoflow.jar; soot-infoflow-android.jar; slf4j-api-1.7.5.jar; slf4j-simple-.7.5.jar; axml -2.0.jar soot.jimple.infoflow.android.TestApps.Test C: \\ Kullanıcılar \\ Yönetici \\ Dosyalar \\ DroidBench-master \\ DroidBench-master \\ apk \\ InterComponentCommunication \\ ActivityCommunication1.apk C: \ \ Users \\ Admin \\ Yüklemeler \\ EnSoft \\ EnSoft \\ android-sdk \\ platformlar ") – Chinmay

cevap

0
import os 
import glob 
for filename in glob.glob('*.apk'): 
    os.system("java -Xmx4g -cp soot-trunk.jar;soot-infoflow.jar;soot-infoflow-android.jar;slf4j-api-1.7.5.jar;s‌​lf4j-simple-.7.5.jar;axml-2.0.jar soot.jimple.infoflow.android.TestApps.Test C:\\Users\\Admin\\Downloads\\DroidBench-master\\DroidBench-master\\apk\\nf\\%s C:\\Users\\Admin\\Downloads\\EnSoft\\EnSoft\\android-sdk\\platforms" % filename) 

bu yöntemi deneyin. Kodunuzda os.system() argümanındaki "dosya adı" sözcüğü, glob tarafından bulunan bir dosya adı ile değiştirilmez. Dize biçimlendirme sözdizimini kullanarak çalışmalıdır.

+0

Nah çalışmıyor. Komut, bir apk dosyasının yolunu ilk argüman olarak alan ve diğer argüman olarak android-sdks platformlarının dizinine giden bir araç içindir. İlk argümanın% s'inin olması problemin burada neden olmasına neden olur – Chinmay

+0

Hata! * .py dosyalarını (bilgisayarımdaki bir test olarak) aramak için ayarlanmış bir kodum vardı ama şimdi * .apk'ı aramak için onu düzenledim, bu yüzden kopyala yapıştırmayı deneyin tekrar dene. Os.system çağrılmadan önce% s glob içinde bulunan dosya adı ile değiştirilir. –

+0

İlk önce onu gönderdiğimde zaten .apk ile denedim. Çalışmıyor – Chinmay

0

Neden sadece glob library'u kullanmıyorsunuz? ve sonra os.system ile çıkışını kullanın:

import glob 

for file in glob.glob("*.apk"): 
    os.system("do_thing " + file) 
+0

Kullanmak istediğim komutun, yalnızca 1'inin dosya adı (yorumunuza göre 'dosya' olacak) olduğu iki argümanı var, bu yüzden bunu kullanarak bazı problemler var. Benim yorumumu ilk bakışta görebilmeniz için – Chinmay

İlgili konular