Как мне скопировать файл в Python?

Простейшая альтернатива: вы можете использовать флаг atos -l, чтобы сделать это для математики для вас.

Предположим, что в вашем журнале сбоев вы указали следующую строку:

5   MyApp                   0x0044e89a 0x29000 + 4348058

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

Чтобы символизировать, выполните следующие действия:

atos -o MyApp.app/MyApp -arch armv7 -l 0x29000 0x0044e89a

Если вы не можете найти файл MyApp.app/MyApp, переименуйте файл «.ipa» в «.zip», разархивируйте его, и он будет в папке «Полезная нагрузка».

И если вы не знаете, какую архитектуру использовать (например, armv7 или armv7s), выделите часть «Двоичные изображения» в файле сбоя, и вы можете найти его там.

Приветствия

2041
задан Peter Mortensen 15 August 2018 в 01:59
поделиться

4 ответа

shutil имеет много методов, которые можно использовать. Один из которых:

from shutil import copyfile

copyfile(src, dst)

Копия содержание файла, названного src в файл, названный dst. Целевое местоположение должно быть перезаписываемо; иначе IOError исключение будет повышено. Если dst уже будет существовать, это будет заменено. Специальные файлы, такие как устройства посимвольного ввода-вывода или блочные устройства и каналы не могут быть скопированы с этой функцией. src и dst пути, данные как строки.

2519
ответ дан Mr. Me 15 August 2018 в 01:59
поделиться
  • 1
    Вы протестировал это в ZF2 и ZF1? Не сделал работавший к вашему сведению. – YumYumYum 19 July 2013 в 09:23

Используйте shutil модуль .

copyfile(src, dst)

Копия содержание файла, названного src в файл, названный dst. Целевое местоположение должно быть перезаписываемо; иначе исключение IOError будет повышено. Если dst уже будет существовать, он будет заменен. Специальные файлы, такие как устройства посимвольного ввода-вывода или блочные устройства и каналы не могут быть скопированы с этой функцией. src и dst являются путями, данными как строки.

Смотрят на filesys для всего файла и каталога, обрабатывающего функции, доступные в стандартных модулях Python.

62
ответ дан flying sheep 15 August 2018 в 01:59
поделиться
  • 1
    Можете Вы уточнять Отложенный:: Job.find (4) .destroy – codeit 14 March 2012 в 15:01

Копирование файла является относительно простой операцией как показано примерами ниже, но необходимо вместо этого использовать shutil stdlib модуль для этого.

def copyfileobj_example(source, dest, buffer_size=1024*1024):
    """      
    Copy a file from source to dest. source and dest
    must be file-like objects, i.e. any object with a read or
    write method, like for example StringIO.
    """
    while True:
        copy_buffer = source.read(buffer_size)
        if not copy_buffer:
            break
        dest.write(copy_buffer)

, Если Вы хотите скопировать именем файла, Вы могли бы сделать что-то вроде этого:

def copyfile_example(source, dest):
    # Beware, this example does not handle any edge cases!
    with open(source, 'rb') as src, open(dest, 'wb') as dst:
        copyfileobj_example(src, dst)
90
ответ дан Eric O Lebigot 15 August 2018 в 01:59
поделиться

copy2(src,dst) часто более полезно, чем copyfile(src,dst) потому что:

  • это позволяет dst быть каталог (вместо полного целевого имени файла), в этом случае , базовое имя из src используется для создания нового файла;
  • это сохраняет исходную модификацию и информацию о доступе (mtime и atime) в метаданных файла (однако, это идет с небольшими издержками).

Вот короткий пример:

import shutil
shutil.copy2('/src/dir/file.ext', '/dst/dir/newname.ext') # complete target filename given
shutil.copy2('/src/file.ext', '/dst/dir') # target filename is /dst/dir/file.ext
668
ответ дан Sheljohn 15 August 2018 в 01:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: