У меня есть двоичный файл с именем "infile.bin
". Я хочу создать программу и немного изменить файл (входной файл со значением каждого байта, увеличенным на единицу), а затем сделать outfile
.
Для этого я сделал следующий скрипт на python:
import sys
class assignment():
def __init__(self, infile, outfile):
if not infile.endswith('.bin'):
raise NameError("file should have '.bin' extension")
self.infile = infile
self.outfile = outfile
def read_infile(self):
with open(self.infile, "rb") as bin_in_file:
data = bin_in_file.read()
return data
def increment_write(self):
with open(self.outfile, "wb") as bin_out_file:
bin_out_file.write(bytes(item + 1 for item in data))
infile = sys.argv[1]
outfile = sys.argv[2]
main = assignment(infile, outfile).read_infile()
main2 = assignment(infile, outfile).increment_write()
print main
print main2
чтобы запустить его с помощью этой простой команды
python program.py infile.bin out.bin
но когда я запускаю скрипт, он выдает эту ошибку:
Traceback (most recent call last):
File "program.py", line 24, in <module>
main2 = assignment(infile, outfile).increment_write()
File "program.py", line 18, in increment_write
bin_out_file.write(bytes(item + 1 for item in data))
NameError: global name 'data' is not defined
а там нет "out.bin
" вы знаете как это исправить?