Найти - Пользователи
Полная версия: Замена символов в нетекстовых файлах.
Начало » Python для новичков » Замена символов в нетекстовых файлах.
1 2 3 4
dnstuff
Как же теперь сделать, чтобы bytes(i) было четырехзначным?
odnochlen
>>> str(1).rjust(4,'0')
'0001'
dnstuff
Так у меня уже не str(i), а bytes(i). С ним rjust не работает. А если вернуться к str, то код не работает
odnochlen
>>> bytes is str
True
На двойке bytes и str - байтовая строка, на тройке str - юникод.

Попробуй запустить свой первоначальный код для двойки, имхо он для нее и предназначен
py.user.next
dnstuff
Не понял. У Вас же одни строки, а не переменные.
>>> s = 'abcd'
>>> b = s.encode('latin1')
>>> s
'abcd'
>>> b
b'abcd'
>>>

dnstuff
import re
import glob
state = input("State: ")
code=input("Code: ")
state_path="C:/"+state+"/Setup/Sourse/*.img"
file_list = glob.glob(state_path)
i=0
for file in file_list:
	file_name=str(code)+str(i).rjust(4, '0')
	id='I04C72'+ str(hex(i+80)[2:])
	output_file = open(file_name,"wb")
	data = open(file, "rb").read()
	output_file.write( re.sub(id, file_name, data)  )
	output_file.close()
	i=i+1
так себе код:
1) для объединения путей используй os.path.join(), который знает про разделители путей в системе
2) не используй встроенные имена для переменных - id
3) для формирования строки используй str.format(), а не плюсики
4) открывай файлы с помощью with, указывая кодировку файла, либо закрывай файл по завершении работы (это хороший тон)
(если есть with, то файл закроется им автоматически)
5) запись в файл выполняется через print(), сделай help(print)
6) не используй re для простейших операций, так как его функции медленнее

dnstuff
id='I04C72'+ str(hex(i+80)[2:])
ident = 'I04C72{0:x}'.format(i + 80)

dnstuff
file_name=str(code)+str(i).rjust(4, '0')
file_name = '{0}{1:04}'.format(code, i)

лучше напиши задание
odnochlen
py.user.next
так себе код:
Да понятно, что так себе. Проще его переписать.
odnochlen
py.user.next
ибо закрывай файл по завершении работы (это хороший тон)
В таком скрипте этим разве не можно пренебречь? Файл или скормится GC, или самое позднее закроется после завершения программы.
py.user.next
odnochlen
В таком скрипте этим разве не можно пренебречь?
этот скрипт может быть перенесён в виде части в другой скрипт, может быть оформлен в виде функции
можно не заметить, что там нет закрытия файла, потому что перечитывать все фрагменты неудобно
поэтому всё это делается сразу
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB