#python
#python
Вопрос:
Я пытаюсь перечислить файлы в файле .ipa.Я пытаюсь извлечь ipa для проверки того, насколько защищена моя база данных внутри ipa. После его извлечения я получил файл Myappname.app. я хочу отобразить содержимое этого файла на python.я попробовал следующий код, в котором не указано содержимое
import os
for file in os.listdir("/mydir"):
if file.endswith(".txt"):
print(file)
но я могу просмотреть содержимое файла Myappname.app, используя следующий Java-код.
void listf(String directoryName, ArrayList<File> files) {
File directory = new File(directoryName);
// get all the files from a directory
File[] fList = directory.listFiles();
for (File file : fList) {
if (file.isFile()) {
files.add(file);
} else if (file.isDirectory()) {
listf(file.getAbsolutePath(), files);
}
}
}
Комментарии:
1. почему вы проверяете
file.endswith(".txt")
в коде python, но не в коде Java?2. я пытаюсь перечислить все файлы .db в каталоге. по ошибке я добавил сюда как .txt
Ответ №1:
Ваше file
— это только имя файла, поэтому вам нужно открыть его и прочитать содержимое
print( open("/mydir/" file, 'r').read() )
Ответ №2:
Я решил проблему с помощью glob.glob amp; os.path.isfile. извлеченная папка содержит некоторые файлы и скоросшиватель. listdir выдает ошибку, если я передаю файлы вместо папки, поэтому я фильтровал файлы, используя os.path.isfile amp; amp; os.path.isdir возвращает false для этой папки.
if os.path.exists(ipaExtractedPath):
for file in os.listdir(ipaExtractedPath):
if not os.path.isfile(ipaExtractedPath "/" file):
for f in glob.glob(ipaExtractedPath "/" file "/*.db"):
try:
// some code here
break
conn.close()
except sqlite3.Error:
print "Error open db.n"