2017-09-22 1 views
0

특정 줄 (줄 # 3)을 문자열로 바꾸려는 .txt 파일이 있습니다. 파일에 targetString이 여러 개 있고 그 파일의 순서가 알려지지 않았기 때문에 간단한 file.replace (targetString, newString)를 사용하고 싶지 않습니다. 나는 교체 할 문자열이 항상 3 행에 있다는 것을 알고 있으며 3 행에서만 유일한 문자열입니다.파일 줄을 문자열로 바꾸기

현재 내 코드는 당신이

with open("LAB5INFO.txt", "r+") as file: 
    content = file.read() 
    file.seek(0) 
    file.truncate() 
    file.write(content.replace(<<LINE3>>, string)) 
+0

안녕하세요 올리버의 내용을 알 필요가 없다, 나는 귀하의 질문에 몇 가지 변경을했다. 나는 제목에서 파이썬 태그를 꺼냈다. 태그는 사용하지 않는 것이 좋습니다. 더 중요한 것은 코드 블록의 간격을 변경했습니다. 이것이 파이썬이므로 간격 변경이 중요합니다. 변경 한 내용이 귀하가 작성한 코드를 실제로 표현한 것이 아니라면 질문을 편집하거나 변경 사항을 되돌려주십시오. –

+0

또한 프로그래밍에 끔찍한 경우 편집기에서 파일을 열고 해당 행을 변경하지 않는 이유는 무엇입니까? (배치 스크립트에서 해당 행을 변경하려면 일반적으로 원하는대로 할 수있는 스크립팅 옵션이 있습니다.) –

답변

1

같아요 생각할 수있는 가장 쉬운 대답을 부탁드립니다 그래서 내가 프로그래밍에 끔찍한 해요, 다음과 같이 보입니다?

다른 대답에서 대출
with open("LAB5INFO.txt", "rb") as file: 
    lines = file.readlines() 
    lines[2].replace("old","new") 
with open("LAB5INFO.txt", "wb") as file: 
    file.write("\n".join(lines) 
0

, 그러나 여기에서 우리가 원래 라인

with open("LAB5INFO.txt", "rb") as file:lines = file.readlines() 
lines[2]="new third line" 
with open("LAB5INFO.txt", "wb") as file: file.write("\n".join(lines)) 
관련 문제