제가 작업하고있는 Python 스크립트가 로컬 날씨 조건과 일부 네트워크 정보를 .bashrc 파일에 추가합니다. 모든 것은 두 가지 버그를 제외하면 예상대로 작동합니다. 이전 데이터를 제거하고 새 데이터를 추가하는 대신 다음과 같이 새 데이터를 추가합니다.Python3 - 파일에서 마지막 (n) 줄을 지우고 새 데이터를 추가하십시오.
('echo [로컬 날씨] :', 66.9, 'F' , 'with', 'cloud') ('에코 [귀하의 공용 IP 주소는 :],'xxxx '('에코 [현지 날씨] : ', 66.9,'F ','with ','흐린 구름 ') 는 ('에코 [내 공개 IP이다] ','XXXX ')
및 제 I 인쇄 된 텍스트에 서식을 드롭해야 예 (괄호, 쉼표 등) 때문에 문자열이 다음과 같이 표시됩니다.
에코 [로컬 날씨] : 흐린 구름 66.9F
에코 [공공 IP] : XXXX 여기
내 스크립트의 파일 작업 부분입니다
:with open('HOME/.bashrc', 'a') as f:
w = "echo [Local weather]:", wx_t,"F", "with", wx_c
i = "echo [Your public IP is]:", ip
out = [str(w), str(i)]
f.write('\n'.join(out)[0:-3])
그래서 난 생각이 그 f.write('\n'.join(out)[0:-3])
파일의 마지막 3 줄을 제거하지만 분명히 그것은 문자열의 마지막 3 문자를 삭제합니다. 내가 시도하는 것을 달성하기 위해 무엇을 바꾸어야합니까? f.write()
대신 f.writelines()
을 사용해야합니까?
에 오신 것을 환영합니다 [호스트 이름] 당신은 사용자로 로그인 [some_user]
[현지 시간] : 2017 월 3월 20일 중부 서머 타임 08시 28분 32초예상되는 결과는 결국 다음과 같이 표시됩니다 .
[로컬 날씨]으로 192.168.xx [공공 IP] : 맑은 하늘
[로컬 IP]와 66.56 F 미리와 XXXX
덕분에이 내가 apologiz 중복 질문 인 경우 이자형. 나는 해결책을 찾는데 나의 근면함을 느꼈지만 나는 실패했다.
UPDATE
: 그래서 제가w = "echo [Local weather]: " + str(wx_t) + " F, with " + wx_c
에
w = "echo [Local weather]:", wx_t,"F", "with", wx_c
변경하여 서식 고정 f.writelines()
대신 f.write()
을 사용. 또한 DeepSpace에서 제안한 f.close()를 제거했습니다.
'on'을 사용하기 때문에'f.close()'를 호출 할 필요가 없습니다. – DeepSpace
감사합니다. 나는 여전히 Python에 아주 익숙하지 않고 안전하게 플레이 할 것이라고 확신하지 못했습니다. –