Как сделать пробел между каждыми двумя пикселями в файле pbm (режим ASCII)

У меня есть файл test.pbm в режиме ASCII, содержащий следующий код:

P1
# Comment
9 9
000000000
011000000
011000000
011000000
011000000
011000010
011111110
011111110
000000000   

Я хочу сделать новый файл "newFile.pbm", который будет содержать пространство между каждыми двумя пикселями. Вроде как:

P1
# Comment
9 9
0 0 0 0 0 0 0 0 0
0 1 1 0 0 0 0 0 0
0 1 1 0 0 0 0 0 0
0 1 1 0 0 0 0 0 0
0 1 1 0 0 0 0 0 0
0 1 1 0 0 0 0 1 0
0 1 1 1 1 1 1 1 0
0 1 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0 0 

Я попытался открыть файл "test.pbm" с помощью следующего кода, чтобы сделать работу, но я столкнулся со многими проблемами, во-первых, он показывает "IOError: не может определить файл изображения" при открытии.pbm, во-вторых, не может сделать пространство между каждыми двумя пикселями. На самом деле я новичок в Python. Моя ОС Linux Mint 17.3 cinamon 32bit и Python2.7.6. Пожалуйста, помогите. Код, который я попробовал, приведен ниже:

fo=open("test.pbm",'r')  
columnSize, rowSize=fo.size
x=fo.readlines()
fn = open("newfile.pbm","w") 
for i in range(columnSize):
     for j in range(rowSize):
      fn.write(x[i][j])
fn.close()

1 ответ

Решение

Вы могли бы сделать что-то вроде этого:

with open("test.pbm", 'r') as f:
    image = f.readlines()

with open("newfile.pbm", "w") as f:
    f.writelines(image[:3])   # rewrite the header with no change
    for line in image[3:]:    # expand the remaining lines
        f.write(' '.join(line))
Другие вопросы по тегам