Python Forum

Full Version: Write HEX into file in multiple line
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I have a question related to my code.
I have a text file name data.txt, i put two line it will help me add 1 and transfer to hex.
Right now i meet this two problem.

1. It cn only read one line, if i put two line it will be error
2. It should be able to erase previous data, but it didn't

Do anyone know what i need to changed.

data.txt
11
12

Expected output should be :
0X12
0x13

but right now it can only be used one line, if i put one line it will only pritn like this
110x11

i iwish to pritn only 0x12.
Do anyone know what i need to changed?

with open(r'data.txt','r+') as f:
    for line in f:
        line = line.strip()
        #line = line[:-1] + str(int(line[-1:]) + 1)
        line = int(line,16)+1
	    #f.write ((hex(line).rstrip("L").lstrip("0x") or "0")+'\n')
	    f.write (hex(line))
	
        #print hex(line).rstrip("L").lstrip("0x") or "0"
(Nov-09-2017, 08:02 AM)jacklee26 Wrote: [ -> ]Expected output should be :
Are you sure?
>>> n = 11
>>> hex(n)
'0xb'
>>> n = 12
>>> hex(n)
'0xc'
>>> # If need 2
>>> '0x{0:02x}'.format(n)
'0x0c'
The normal way is to also open a new file for writing.
with open('data.txt') as f,open('data_out.txt', 'w') as f_out:
    for line in f:
        line = line.strip()
        f_out.write('{}\n'.format(hex(int(line))))
Hi snippsat,
i have one more question.
How do i also write data.txt into data_out.txt
i wants to write data.txt into data_out.txt

EX:
data.txt
11
12

data_out.txt
11 0xb
12 0xc


11 is from data.txt

can i used below this code, and change
with open('data.txt', 'w') as f,open('data_out.txt', 'w') as f_out:
f.write('{}\n'.format(hex(int(line))))
i figure it out, but it's the format is not good
Out put is
old file new file
0xb
11 0xc
12

i wish to be like this
old file new file
11 0xb
12 0xc

with open('data.txt') as f,open('data_out.txt', 'w') as f_out:
    f_out.write('old file \t new file \n')
    #print ('old file \t new file \n')
    for line in f:
        line = line.strip()
	
	f_out.write(('\t{}\n'.format(hex(int(line)))).expandtabs(18))
	#print(('\t{}\n'.format(hex(int(line)))).expandtabs(18))
	#f.write('{}\n'.format(hex(int(line))))
	f_out.write('{}'.format(line))

Sorry i solved it. Any comment with the code, that can be written better ?

with open('data.txt') as f,open('data_out.txt', 'w') as f_out:
    f_out.write('old file \t new file \n')
    #print ('old file \t new file \n')
    for line in f:
        line = line.strip()
	f_out.write('{}'.format(line))
	f_out.write(('\t{}\n'.format(hex(int(line)))).expandtabs(18))
	#print(('\t{}\n'.format(hex(int(line)))).expandtabs(18))
	#f.write('{}\n'.format(hex(int(line))))
	
(Nov-17-2017, 08:40 AM)jacklee26 Wrote: [ -> ]How do i also write data.txt into data_out.txt i wants to write data.txt into data_out.txt
with open('data.txt') as f,open('data_out.txt', 'w') as f_out:
    for line in f:
        line = line.strip()
        f_out.write('{} {}\n'.format(line, hex(int(line))))
f-string 3.6:
with open('data.txt') as f,open('data_out.txt', 'w') as f_out:
    for line in f:
        line = line.strip()
        f_out.write(f'{line} {hex(int(line))}\n')