2017-10-12 1 views
0

파일에서 점 뒤에 개행을하고 싶습니다. 예를 들어Python 문자 뒤에 개행을하십시오.

:

Hello. I am damn cool. Lol 

출력 :

Hello. 
I am damn cool. 
Lol 

내가 그렇게 그것을 시도하지만, 어떻게 든이 작동하지 않습니다 :

f2 = open(path, "w+") 
    for line in f2.readlines(): 
     f2.write("\n".join(line)) 
    f2.close() 

수있는 당신의 도움이 나?

개행뿐만 아니라 단일 파일의 모든 점 다음에 개행을 원합니다. 그것은 전체 파일을 반복하고 매 점마다 개행해야합니다.

미리 감사드립니다.

+0

의 사용 가능한 복제 [? 새로운 라인의 파일에 모든 시간을 캐릭터 라인을 기입] (https://stackoverflow.com/questions/2918362/writing :

따라서, 파일이 작업을 수행하는 -string-to-a-file-on-a-new-line-every-time) – alex

+0

@Chris_Rands이 작업을 할 수 없습니다. 방금 파일에 개행 문자를 썼습니다. 나는 점 뒤에 개행을 원한다. 파일에 새 줄 바꿈 만있는 것이 아닙니다. – Lucas

+0

'str.split()'에 대해 배우십시오; 실제로 문자열을 '.'로 끝나는 하위 문자열 목록으로 분할 한 다음 해당 목록을 인쇄해야합니다. –

답변

3

이 트릭을 할 정도로해야한다 : 당신은 split. 및 목록에 저장을 기반으로 문자열, 그럼 그냥 목록을 인쇄 할 수

with open('file.txt', 'r') as f: 
    contents = f.read() 

with open('file.txt', 'w') as f: 
    f.write(contents.replace('. ', '.\n')) 
2

. 이렇게하면

s = 'Hello. I am damn cool. Lol' 
lines = s.split('.') 
for line in lines: 
    print(line) 

, 출력 될 것입니다 :

Hello 
I am damn cool 
Lol 

가 선행 공백을 제거하려면, 당신은 (공백) .에 따라, 또는 인쇄 할 때 다른 lstrip()를 사용 나누 수 있습니다.

# open file for reading 
with open('file.txt') as fr: 
    # get the text in the file 
    text = fr.read() 
    # split up the file into lines based on '.' 
    lines = text.split('.') 

# open the file for writing 
with open('file.txt', 'w') as fw: 
    # loop over each line 
    for line in lines: 
    # remove leading whitespace, and write to the file with a newline 
    fw.write(line.lstrip() + '\n') 
관련 문제