title: Modifying binary file with Python
body: <p>i am trying to patch a hex file.
  i have two patch files (hex) named "patch 1" and "patch 2"</p>
  
  <p>the file to be patched is a 16 MB file named "file.bin".</p>
  
  <p>i have tried many different way for the past 6 or 7 hours to figure out how to do it. I can write a string to a file all day long, but i am trying to do the following:</p>
  
  <p>open patch1.bin with read bytes
  open patch2.bin with read bytes
  open file.bin with write bytes</p>
  
  <p>i want to seek to positions 0xc0010, and 0x7c0010, and apply patch1.bin
  then i want to seek to 0x040000 and apply patch2.bin</p>
  
  <p>so all in all i will have 3 patches applied, then close the "file.bin"</p>
  
  <p>if someone cold give me an example i would very much appreciate it :)</p>
  
  <p>i tried this first:</p>
  
  <pre><code>patch1 = open("patch1", "r");
  patch2 = open("patch2", "r");
  main = open("file.bin", "w");
  
  main.seek(0xC0010);
  main.write(patch1);
  main.seek(0x7C0010);
  main.write(patch1);
  main.seek(0x40000);
  main.write(patch2);
  main.close();
  </code></pre>
  
  <p>but was informed i was was trying to write a string to a file, when indeed its not what i wanted, lol
  then i tried this:</p>
  
  <pre><code>infile1 = open("patch1.bin", "rb") 
  new_pos1 = int("0x00", 16)
  infile1.seek(new_pos1, 0)
  infile2 = open('file.bin', 'wb')
  new_pos2 = int('0xc0010', 16)
  infile2.seek(new_pos2, 0xc0010)
  chunk1 = int("6FFFE0", 16)         #this is how long patch1 file is
  data1 = infile1.read(chunk1)
  with open("file.bin", "a") as outfile:
      outfile.write(data1)
  </code></pre>
  
  <p>but it did not work either, as no matter what i tried, i could not get it to write the data at he correct offset. </p>
  
  <p>I did manage a few times to write the patch1 to file.bin, but it did not patch at the right offset, as a matter of fact it deleted the file.bin and just copied patch1 in its place. which ofcourse is wrong.</p>
  
  <p>i must remind you i am new to python and programming, but i am really trying to dig my feet into it and learn, so any good examples will be examined and hopefully will be a good learning lesson for me :)</p>
  
  <p>thanks guys and gals for helping me figure out what i was doing wrong :)</p>