Nano Hash - криптовалюты, майнинг, программирование

Распаковать файл с помощью python без ошибок/предупреждений?

Я пытаюсь распаковать файлы в python. Я даю своей программе путь к файлу с основным каталогом файла, который имеет 9 подкаталогов и python, который проходит через них, находит tar-файлы с определенным именем и распаковывает их.

Таким образом, мой output_text файл имеет мой основной каталог, и после этого я перебираю номера моих 01-09 файлов в этом каталоге и unzip файл с определенным именем в них.

Я написал некоторый код, но происходит ничего, ни ошибок, ни предупреждений, ничего:

def main():
    output_path = "/Users/rs/Documents/clients_file.txt"
    path = []
    with open(output_path) as f:
        for exptini_path_raw in f:
            exptini_path = exptini_path_raw.strip()
            path.append(exptini_path)

for i in range(1,1):
    for j in range(0,len(path)):
        if i < 10:
            p = "/%s/0%d/middleware"%(path[j],i)
        else:
            p = "/%s/%d/middleware"%(path[j],i)
    for root, _, files in os.walk(p):
            for f in files:
                if not 'client-logs' or 'middleware-logs' in f:
                    continue
                print 'going to extract %s'%f
                f1 = os.path.join(p,f)
                tar = tarfile.open(f1)
                tar.extractall()
                tar.close()



if __name__ == '__main__':
    main()

Примечание. Даже то, что я распечатываю, не отображается. В чем может быть причина?

РЕДАКТИРОВАТЬ: я изменил свой код и теперь получил это

File "unzip_files.py", line 47, in <module>
    main()
  File "unzip_files.py", line 40, in main
    tar = tarfile.open(f1)
  File 

«/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/tarfile.py», строка 1672, при открытии поднять ReadError («файл не может быть успешно открыт») tarfile.ReadError: файл может не открыться успешно

Это мой модифицированный код:

импортировать ОС, импортировать os.path, импортировать tar-файл

def main():
    output_path = "/Users/rs/Documents/clients_file.txt"
    path = []
    with open(output_path) as f:
        for exptini_path_raw in f:
            exptini_path = exptini_path_raw.strip()
            path.append(exptini_path)
            print path

for i in range(1,10):
    print i
    for j in range(0,len(path)):
        print j
        if i < 10:
            p = "/%s/0%d"%(path[j],i)
        else:
            p = "/%s/%d"%(path[j],i)
        print p
        for root, _, files in os.walk(p):
            for f in files:
                if not 'client-logs' or 'middleware-logs' in f:
                    continue
                print 'going to extract %s'%f
                f1 = os.path.join(p,f)
                tar = tarfile.open(f1)
                tar.extractall()
                tar.close()



if __name__ == '__main__':
    main()

ПРИМЕЧАНИЕ: файл является файлом tgz!

27.10.2015

Ответы:


1

for i in range(1,1): ничего не делает. У вас не будет итераций.

Попробуйте:

>>> for i in range(1,1):
...     print i
... 
>>> for i in range(1,2):
...     print i
... 
1

Я думаю, вы хотите что-то еще вроде этого:

EDIT: я исправил и протестировал следующее.

untarscript.py

import os, tarfile

def main():
    output_path = "/Users/rs/Documents/clients_file.txt"
    path = []
    with open(output_path) as f:
        for exptini_path_raw in f:
            exptini_path = exptini_path_raw.strip()
            print "Adding to path: {}".format(exptini_path)
            path.append(exptini_path)

    for i in range(1,10):
        for j in range(0,len(path)):
            p = "{}/{:0>2}/middleware".format(path[j], i)
            print "Path to search for tar files: {}".format(p)
            for root, dirs, files in os.walk(p):
                for f in files:
                    print "Investigating file: {}".format(f)
                    if not ('client-logs' in f or 'middleware-logs' in f):
                        print "This file does not match expected file name...skipping: {}".format(f)
                        continue
                    print 'going to extract {} to folder {}'.format(os.path.join(p,f), p)
                    f1 = os.path.join(p,f)
                    tar = tarfile.open(f1)
                    tar.extractall(path=p)
                    tar.close()

if __name__ == '__main__':
    main()

for i in range(1,10): даст вам номера подкаталогов от 1 до 9.

{:0>2} примет значение i и добавит 0 до двух цифр. Удален % и использован новый синтаксис строки формата.

Исправлена ​​табуляция строки for root, dir, files in os.walk(p):, чтобы она выполнялась каждый раз при обновлении p.

Заменил if not 'client-logs' or 'middleware-logs' in f: на if not ('client-logs' in f or 'middleware-logs' in f):, потому что тест для middleware-logs дал сбой.

Добавлен аргумент path=p к tar.extractall(), чтобы убедиться, что файл tar извлечен в ту же папку, в которой он был найден. Вы можете удалить это, если это нежелательное поведение.

Перед выполнением untarscript.py:

[[email protected] Documents]# pwd
/Users/rs/Documents
[[email protected] Documents]# ls -al
total 24
drwxr-xr-x  5 root root 4096 Oct 27 15:09 .
drwxr-xr-x  5 root root 4096 Oct 27 15:09 ..
-rw-r--r--  1 root root   87 Oct 27 12:30 clients_file.txt
drwxr-xr-x 11 root root 4096 Oct 27 12:37 exptini1
drwxr-xr-x 11 root root 4096 Oct 27 12:37 exptini2
drwxr-xr-x 11 root root 4096 Oct 27 12:37 exptini3
[[email protected] Documents]# cat clients_file.txt
/Users/rs/Documents/exptini1
/Users/rs/Documents/exptini2
/Users/rs/Documents/exptini3

(stackoverflow)[[email protected] Documents]# tree
.
|-- clients_file.txt
|-- exptini1
|   |-- 01
|   |   `-- middleware
|   |       `-- client-logs-archive.tar
|   |-- 02
|   |   `-- middleware
|   |       `-- client-logs-archive.tar
|   |-- 03
|   |   `-- middleware
|   |       `-- client-logs-archive.tar
|   |-- 04
|   |   `-- middleware
|   |       `-- client-logs-archive.tar
|   |-- 05
|   |   `-- middleware
|   |       `-- client-logs-archive.tar
|   |-- 06
|   |   `-- middleware
|   |       `-- client-logs-archive.tar
|   |-- 07
|   |   `-- middleware
|   |       `-- client-logs-archive.tar
|   |-- 08
|   |   `-- middleware
|   |       `-- client-logs-archive.tar
|   `-- 09
|       `-- middleware
|           `-- client-logs-archive.tar
|-- exptini2
|   |-- 01
|   |   `-- middleware
|   |       `-- client-logs-archive.tar
|   |-- 02
|   |   `-- middleware
|   |       `-- client-logs-archive.tar
|   |-- 03
|   |   `-- middleware
|   |       `-- client-logs-archive.tar
|   |-- 04
|   |   `-- middleware
|   |       `-- client-logs-archive.tar
|   |-- 05
|   |   `-- middleware
|   |       `-- client-logs-archive.tar
|   |-- 06
|   |   `-- middleware
|   |       `-- client-logs-archive.tar
|   |-- 07
|   |   `-- middleware
|   |       `-- client-logs-archive.tar
|   |-- 08
|   |   `-- middleware
|   |       `-- client-logs-archive.tar
|   `-- 09
|       `-- middleware
|           `-- client-logs-archive.tar
`-- exptini3
    |-- 01
    |   `-- middleware
    |       `-- client-logs-archive.tar
    |-- 02
    |   `-- middleware
    |       `-- client-logs-archive.tar
    |-- 03
    |   `-- middleware
    |       `-- client-logs-archive.tar
    |-- 04
    |   `-- middleware
    |       `-- client-logs-archive.tar
    |-- 05
    |   `-- middleware
    |       `-- client-logs-archive.tar
    |-- 06
    |   `-- middleware
    |       `-- client-logs-archive.tar
    |-- 07
    |   `-- middleware
    |       `-- client-logs-archive.tar
    |-- 08
    |   `-- middleware
    |       `-- client-logs-archive.tar
    `-- 09
        `-- middleware
            `-- client-logs-archive.tar

После выполнения untarscript.py:

(stackoverflow)[[email protected] Documents]# tree
.
|-- clients_file.txt
|-- exptini1
|   |-- 01
|   |   `-- middleware
|   |       |-- client-logs-archive.tar
|   |       `-- client-logs_exptini1_01
|   |           |-- test1.txt
|   |           |-- test2.txt
|   |           |-- test3.txt
|   |           |-- test4.txt
|   |           |-- test5.txt
|   |           |-- test6.txt
|   |           |-- test7.txt
|   |           |-- test8.txt
|   |           `-- test9.txt
|   |-- 02
|   |   `-- middleware
|   |       |-- client-logs-archive.tar
|   |       `-- client-logs_exptini1_02
|   |           |-- test1.txt
|   |           |-- test2.txt
|   |           |-- test3.txt
|   |           |-- test4.txt
|   |           |-- test5.txt
|   |           |-- test6.txt
|   |           |-- test7.txt
|   |           |-- test8.txt
|   |           `-- test9.txt
|   |-- 03
|   |   `-- middleware
|   |       |-- client-logs-archive.tar
|   |       `-- client-logs_exptini1_03
|   |           |-- test1.txt
|   |           |-- test2.txt
|   |           |-- test3.txt
|   |           |-- test4.txt
|   |           |-- test5.txt
|   |           |-- test6.txt
|   |           |-- test7.txt
|   |           |-- test8.txt
|   |           `-- test9.txt
|   |-- 04
|   |   `-- middleware
|   |       |-- client-logs-archive.tar
|   |       `-- client-logs_exptini1_04
|   |           |-- test1.txt
|   |           |-- test2.txt
|   |           |-- test3.txt
|   |           |-- test4.txt
|   |           |-- test5.txt
|   |           |-- test6.txt
|   |           |-- test7.txt
|   |           |-- test8.txt
|   |           `-- test9.txt
|   |-- 05
|   |   `-- middleware
|   |       |-- client-logs-archive.tar
|   |       `-- client-logs_exptini1_05
|   |           |-- test1.txt
|   |           |-- test2.txt
|   |           |-- test3.txt
|   |           |-- test4.txt
|   |           |-- test5.txt
|   |           |-- test6.txt
|   |           |-- test7.txt
|   |           |-- test8.txt
|   |           `-- test9.txt
|   |-- 06
|   |   `-- middleware
|   |       |-- client-logs-archive.tar
|   |       `-- client-logs_exptini1_06
|   |           |-- test1.txt
|   |           |-- test2.txt
|   |           |-- test3.txt
|   |           |-- test4.txt
|   |           |-- test5.txt
|   |           |-- test6.txt
|   |           |-- test7.txt
|   |           |-- test8.txt
|   |           `-- test9.txt
|   |-- 07
|   |   `-- middleware
|   |       |-- client-logs-archive.tar
|   |       `-- client-logs_exptini1_07
|   |           |-- test1.txt
|   |           |-- test2.txt
|   |           |-- test3.txt
|   |           |-- test4.txt
|   |           |-- test5.txt
|   |           |-- test6.txt
|   |           |-- test7.txt
|   |           |-- test8.txt
|   |           `-- test9.txt
|   |-- 08
|   |   `-- middleware
|   |       |-- client-logs-archive.tar
|   |       `-- client-logs_exptini1_08
|   |           |-- test1.txt
|   |           |-- test2.txt
|   |           |-- test3.txt
|   |           |-- test4.txt
|   |           |-- test5.txt
|   |           |-- test6.txt
|   |           |-- test7.txt
|   |           |-- test8.txt
|   |           `-- test9.txt
|   `-- 09
|       `-- middleware
|           |-- client-logs-archive.tar
|           `-- client-logs_exptini1_09
|               |-- test1.txt
|               |-- test2.txt
|               |-- test3.txt
|               |-- test4.txt
|               |-- test5.txt
|               |-- test6.txt
|               |-- test7.txt
|               |-- test8.txt
|               `-- test9.txt
|-- exptini2
|   |-- 01
|   |   `-- middleware
|   |       |-- client-logs-archive.tar
|   |       `-- client-logs_exptini2_01
|   |           |-- test1.txt
|   |           |-- test2.txt
|   |           |-- test3.txt
|   |           |-- test4.txt
|   |           |-- test5.txt
|   |           |-- test6.txt
|   |           |-- test7.txt
|   |           |-- test8.txt
|   |           `-- test9.txt
|   |-- 02
|   |   `-- middleware
|   |       |-- client-logs-archive.tar
|   |       `-- client-logs_exptini2_02
|   |           |-- test1.txt
|   |           |-- test2.txt
|   |           |-- test3.txt
|   |           |-- test4.txt
|   |           |-- test5.txt
|   |           |-- test6.txt
|   |           |-- test7.txt
|   |           |-- test8.txt
|   |           `-- test9.txt
|   |-- 03
|   |   `-- middleware
|   |       |-- client-logs-archive.tar
|   |       `-- client-logs_exptini2_03
|   |           |-- test1.txt
|   |           |-- test2.txt
|   |           |-- test3.txt
|   |           |-- test4.txt
|   |           |-- test5.txt
|   |           |-- test6.txt
|   |           |-- test7.txt
|   |           |-- test8.txt
|   |           `-- test9.txt
|   |-- 04
|   |   `-- middleware
|   |       |-- client-logs-archive.tar
|   |       `-- client-logs_exptini2_04
|   |           |-- test1.txt
|   |           |-- test2.txt
|   |           |-- test3.txt
|   |           |-- test4.txt
|   |           |-- test5.txt
|   |           |-- test6.txt
|   |           |-- test7.txt
|   |           |-- test8.txt
|   |           `-- test9.txt
|   |-- 05
|   |   `-- middleware
|   |       |-- client-logs-archive.tar
|   |       `-- client-logs_exptini2_05
|   |           |-- test1.txt
|   |           |-- test2.txt
|   |           |-- test3.txt
|   |           |-- test4.txt
|   |           |-- test5.txt
|   |           |-- test6.txt
|   |           |-- test7.txt
|   |           |-- test8.txt
|   |           `-- test9.txt
|   |-- 06
|   |   `-- middleware
|   |       |-- client-logs-archive.tar
|   |       `-- client-logs_exptini2_06
|   |           |-- test1.txt
|   |           |-- test2.txt
|   |           |-- test3.txt
|   |           |-- test4.txt
|   |           |-- test5.txt
|   |           |-- test6.txt
|   |           |-- test7.txt
|   |           |-- test8.txt
|   |           `-- test9.txt
|   |-- 07
|   |   `-- middleware
|   |       |-- client-logs-archive.tar
|   |       `-- client-logs_exptini2_07
|   |           |-- test1.txt
|   |           |-- test2.txt
|   |           |-- test3.txt
|   |           |-- test4.txt
|   |           |-- test5.txt
|   |           |-- test6.txt
|   |           |-- test7.txt
|   |           |-- test8.txt
|   |           `-- test9.txt
|   |-- 08
|   |   `-- middleware
|   |       |-- client-logs-archive.tar
|   |       `-- client-logs_exptini2_08
|   |           |-- test1.txt
|   |           |-- test2.txt
|   |           |-- test3.txt
|   |           |-- test4.txt
|   |           |-- test5.txt
|   |           |-- test6.txt
|   |           |-- test7.txt
|   |           |-- test8.txt
|   |           `-- test9.txt
|   `-- 09
|       `-- middleware
|           |-- client-logs-archive.tar
|           `-- client-logs_exptini2_09
|               |-- test1.txt
|               |-- test2.txt
|               |-- test3.txt
|               |-- test4.txt
|               |-- test5.txt
|               |-- test6.txt
|               |-- test7.txt
|               |-- test8.txt
|               `-- test9.txt
`-- exptini3
    |-- 01
    |   `-- middleware
    |       |-- client-logs-archive.tar
    |       `-- client-logs_exptini3_01
    |           |-- test1.txt
    |           |-- test2.txt
    |           |-- test3.txt
    |           |-- test4.txt
    |           |-- test5.txt
    |           |-- test6.txt
    |           |-- test7.txt
    |           |-- test8.txt
    |           `-- test9.txt
    |-- 02
    |   `-- middleware
    |       |-- client-logs-archive.tar
    |       `-- client-logs_exptini3_02
    |           |-- test1.txt
    |           |-- test2.txt
    |           |-- test3.txt
    |           |-- test4.txt
    |           |-- test5.txt
    |           |-- test6.txt
    |           |-- test7.txt
    |           |-- test8.txt
    |           `-- test9.txt
    |-- 03
    |   `-- middleware
    |       |-- client-logs-archive.tar
    |       `-- client-logs_exptini3_03
    |           |-- test1.txt
    |           |-- test2.txt
    |           |-- test3.txt
    |           |-- test4.txt
    |           |-- test5.txt
    |           |-- test6.txt
    |           |-- test7.txt
    |           |-- test8.txt
    |           `-- test9.txt
    |-- 04
    |   `-- middleware
    |       |-- client-logs-archive.tar
    |       `-- client-logs_exptini3_04
    |           |-- test1.txt
    |           |-- test2.txt
    |           |-- test3.txt
    |           |-- test4.txt
    |           |-- test5.txt
    |           |-- test6.txt
    |           |-- test7.txt
    |           |-- test8.txt
    |           `-- test9.txt
    |-- 05
    |   `-- middleware
    |       |-- client-logs-archive.tar
    |       `-- client-logs_exptini3_05
    |           |-- test1.txt
    |           |-- test2.txt
    |           |-- test3.txt
    |           |-- test4.txt
    |           |-- test5.txt
    |           |-- test6.txt
    |           |-- test7.txt
    |           |-- test8.txt
    |           `-- test9.txt
    |-- 06
    |   `-- middleware
    |       |-- client-logs-archive.tar
    |       `-- client-logs_exptini3_06
    |           |-- test1.txt
    |           |-- test2.txt
    |           |-- test3.txt
    |           |-- test4.txt
    |           |-- test5.txt
    |           |-- test6.txt
    |           |-- test7.txt
    |           |-- test8.txt
    |           `-- test9.txt
    |-- 07
    |   `-- middleware
    |       |-- client-logs-archive.tar
    |       `-- client-logs_exptini3_07
    |           |-- test1.txt
    |           |-- test2.txt
    |           |-- test3.txt
    |           |-- test4.txt
    |           |-- test5.txt
    |           |-- test6.txt
    |           |-- test7.txt
    |           |-- test8.txt
    |           `-- test9.txt
    |-- 08
    |   `-- middleware
    |       |-- client-logs-archive.tar
    |       `-- client-logs_exptini3_08
    |           |-- test1.txt
    |           |-- test2.txt
    |           |-- test3.txt
    |           |-- test4.txt
    |           |-- test5.txt
    |           |-- test6.txt
    |           |-- test7.txt
    |           |-- test8.txt
    |           `-- test9.txt
    `-- 09
        `-- middleware
            |-- client-logs-archive.tar
            `-- client-logs_exptini3_09
                |-- test1.txt
                |-- test2.txt
                |-- test3.txt
                |-- test4.txt
                |-- test5.txt
                |-- test6.txt
                |-- test7.txt
                |-- test8.txt
                `-- test9.txt

84 directories, 271 files
27.10.2015
  • Благодарю вас! Он говорит p = /%s/{0:0›2}/middleware%(path[j],i) TypeError: не все аргументы преобразуются во время форматирования строки 27.10.2015
  • и он по-прежнему ничего не делает, даже если я сохраняю все ваши изменения, кроме одного в строке 26 :( 27.10.2015
  • Я исправил и протестировал весь скрипт. Теперь он работает с моими новыми изменениями. 27.10.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..