2010-06-01 8 views
6

파일의 일부 텍스트를 값으로 바꾸려고합니다. 모든 것이 잘 작동하지만, 파일을 완성한 후에 보면 파일의 각 줄 다음에 새로운 (공백) 줄이 있습니다. 이 일이 일어나지 않도록 내가 할 수있는 일이 있습니까? , 파일의 텍스트를 파이썬으로 바꿉니다.

import fileinput 
    for line in fileinput.FileInput("testfile.txt",inplace=1): 
     line = line.replace("newhost",host) 
     print line 

감사합니다 아론

답변

3

line은 파일의 끝 줄 바꿈과 함께 파일에서 읽히고 인쇄본은 그 중 하나를 추가합니다. 당신이 할 수있는

: 줄 뒤에 줄 바꿈을 추가하지 않습니다

print line, 

.

+0

감사합니다! 도움을 주셔서 감사합니다 – Aaron

+0

그래서 나는 문제가 발생했습니다. 어떤 이유로이 텍스트를 대체 할 때 파일에 다른 것이 대체되고 있습니다. 텍스트 편집을 위해 TextWrangler라는 프로그램을 사용하고 파일을 열려고하면 "예기치 않은 I/O 오류가 발생했습니다 (MacOS 오류 코드 : -36)."찾기 및 바꾸기 "가 잘 열립니다. 무엇이 이것을 일으킬 수 있습니까? – Aaron

+0

터미널에서 원본 파일을 보려고하면 바이너리 파일이기 때문에 볼 것인지 묻습니다. 아마도이게 문제일까요? – Aaron

2

print line 자동으로 줄 바꿈을 추가 : 여기

는 내가 가지고있는 코드입니다. 대신 sys.stdout.write(line)을 수행하는 것이 가장 좋습니다.

0

print는 개행 문자를 추가 인쇄 문이 쉼표로 종료하지 않는 한

A '\ n을'문자가 마지막에 기록됩니다. 명령문에 print 키워드 만 있으면이 작업 만 수행됩니다.

관련 문제