2013-06-10 2 views
1

tfw 형식의 해당 헤더가있는 tif 이미지가 있습니다. 다른 이미지 헤더와 마찬가지로 x 및 y 방향의 픽셀 크기, 왼쪽 위 모서리의 회전 및 좌표를 포함합니다. 첫 번째와 네 번째 행인이 파일에서 픽셀 크기를 변경하고 싶습니다. 나는 tfw 형식을 읽는 법을 몰랐다. 그래서 먼저 txt 확장을 변경하고 이제 다음 단계를 시도합니다.파이썬의 디렉토리에있는 텍스트 파일의 값을 바꿉니다.

다음 스크립트를 작성하여 txt 파일의 값을 읽고 바꿉니다. 하나의 파일에 대해서는 잘 작동하지만 폴더에있는 모든 파일에 대해서는 작동하지 않습니다. 누군가가 나를 도울 수 있다면 감사 할 것입니다.

첫 번째 섹션은 헤더의 값을 변경하는 기능이며 두 번째 코드 부분은 모든 파일에 적용됩니다.

#******************The file EditHeader2********* 
def edit(infile, outfile): 
    for line in infile: 
     outfile.write(line.replace('0.2', '1.6')) 
    infile.close() 
    outfile.close() 
    return outfile 

#****************** call the function************************ 

import os, os.path, EditHeader2 

folder1= 'E:/.../edited headers' 
folder2= 'E:/.../edited headers/1' 


for filename in os.listdir(folder1): 
    infilename = os.path.join(folder1, filename) 
    if not os.path.isfile(infilename): continue 
    base, extension = os.path.splitext(filename) 
    if os.path.splitext(filename)[1] == '.txt':   
     infile = open(infilename, 'r') 
     outfile = open(os.path.join(folder2, '{}'.format(base, extension)), 'w') 
     EditHeader2.edit(infile, outfile) 
+0

여러 파일의 문제점은 무엇입니까? 그들 중 일부는 개종하지 않았습니까? 오류가 있습니까? –

+0

에디션을 이용해 주셔서 감사합니다. 음, 주 코드를 적용하면 ** 잘못된 구문 ** 오류가 발생합니다. 그리고 그것은 마지막 줄을 다시 봅니다 EditHeader2.edit (infile, outfile) – user2355306

+0

당신은 무엇이 문제라고 생각합니까? – user2355306

답변

1

나는 EditHeader2 모듈을 변경하지 않았습니다.

주 파일의이 코드는 여러 파일로 구성된 경우에도 유용합니다.

import os, os.path, EditHeader2 

folder1 = 'editedheaders' 
folder2 = 'editedheaders/1' 

extensions = ('.txt', '.tfw', 'your extensions here ...') 

for filename in os.listdir(folder1): 
    infilename = os.path.join(folder1, filename) 
    if not os.path.isfile(infilename): continue 
    base, extension = os.path.splitext(filename) 
    if os.path.splitext(filename)[1] in extensions: 
     infile = open(infilename, 'r') 
     outfile = open(os.path.join(folder2, '{}'.format(base, extension)), 'w') 
     EditHeader2.edit(infile, outfile) 

그래서 나는 거의 아무것도 변경하지 않았습니다. 어쩌면 들여 쓰기에 문제가있을 수 있습니다 (일부 줄은 3 칸, 일부 줄은 4 칸 ...).

+0

: 친절하게 도와 주셔서 감사합니다. 한 번 더 해보았는데 지금은 작동합니다. 단 한가지 질문이 있습니다. 새로 생성 된 파일은 txt 파일에서 인식되지만 'txt'파일 확장자가 없습니다. 이 문제를 어떻게 해결할 수 있습니까? – user2355306

+0

임의의 수의 파일 확장자를 정의 할 수 있도록 해답을 업데이트했습니다. –

관련 문제