@AlessandrIT

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

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

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

Подскажите, какие есть варианты кроме прямого обращения в cmd из скрипта?
  • Вопрос задан
  • 172 просмотра
Решения вопроса 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 надо делать заранее и сохранять в отдельное место - это смещение для дальнейшего чтения

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

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

Войти через центр авторизации
Похожие вопросы