Задать вопрос
@AlessandrIT

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

Работаю над переделкой под Python старого трюка по запрятыванию файла в файл.
В cmd это выглядит так: "copy 1.jpg + 2.rar 3.jpg"
Однако в питоне не получается это реализовать.Пробовал соединять байты одного файла с байтами другого но получается лажа - картинка не открывается.

Кроме того, не могу найти реализацию этой команды в cmd.

Подскажите, какие есть варианты кроме прямого обращения в cmd из скрипта?
  • Вопрос задан
  • 183 просмотра
Подписаться 2 Средний Комментировать
Решения вопроса 2
tatiana6666
@tatiana6666
Очень коротко
Не совсем ясна конечная цель. Если вы хотите, чтобы в конце одного файла появился другой файл, то в Python нужно сделать так:
1. Прочитать файл 1, 2; (rb)
2. Посчитать длину файла 1: (_lenght_)
3. Записать файл 1 в файл 2 по смещению длины первого. (wb)

если надо вызвать из cmd прогу, то не забывайте python.exe proga.py. Или добавляйте python в переменные среды (Windows). В Linux по умолчанию работает.
Ответ написан
@AlessandrIT Автор вопроса
Благодарю за помощь Сергея Борисова и rPman с параллельной ветки форума за подсказки.

Для тех кто вздумает использовать мой опыт предоставляю код:
try: 
  namefile=input("File-Cover: ") 
  size = os.path.getsize(namefile)
  print(size)
  with open(namefile, 'rb') as file1: 
    read1=file1.read()
except FileNotFoundError: 
  print("[x] File: '"+str(namefile)+"' is not defined!")
  raise SystemExit
try: 
  zipfile=input("Zip-File: ")
  with open(zipfile, 'rb') as file2: 
    read2=file2.read()
except FileNotFoundError: 
  print("[x] File: '"+str(zipfile)+"' is not defined!")
  raise SystemExit 
namefile=input("File-Result: ") 
with open(namefile, 'wb') as file3: 
  file3.write(read1)
  file3.write(read2)
  print("[+] File: "+str(namefile)+" successfully overwritten!")
  file3.close()
with open('OUT.rar', 'wb') as file4:
  file3 = open(namefile, 'rb')
  file3.read(size)
  file4.write(file3.read())
  file4.close()


Учтите что получение size надо делать заранее и сохранять в отдельное место - это смещение для дальнейшего чтения

Прошу извинить за говнокод, здесь главное методы получения результата
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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