2017-11-16 8 views
-3

그래서 676 라인 프로그램을 사용 했으므로 이번에는 모든 코드가 disapeared 된 파일을 열었을 때 과거에 문제가 발생하여 백업을 만들었습니다. 내가 먼저 백업을 만들 때이 표시되지소스 코드 문자열에 null 바이트를 포함 할 수 없습니다.

"소스 코드 문자열이 null 바이트를 포함 할 수 없습니다": 나는 복사 내 백업 된 코드는 다음을 실행 붙여 넣을 그러나 때, 그것은 나에게이 구문 오류를 제공합니다 프로그램이 잘 작동했다. 나는 정말로 그것을 다시하고있는 676 개의 선을 지나고 싶지 않다. 저는 파이썬에 관해서는 꽤 기본적인 프로그래머입니다.

이미 모든 공백과 주석을 제거하려고했습니다. # (빨간색 배경색은 # 끝에 있습니다.) 이미 모든 코드를 살펴본 결과 실제로 오류가 없습니다.

+0

StackOverflow에 오신 것을 환영합니다. 도움말 설명서의 게시 지침을 읽고 따르십시오. [최소한의 완전하고 검증 가능한 예제] (http://stackoverflow.com/help/mcve)가 여기에 적용됩니다. MCVE 코드를 게시하고 문제를 정확하게 설명하기 전까지는 효과적으로 도움을 드릴 수 없습니다. 게시 된 코드를 텍스트 파일에 붙여넣고 설명한 문제를 재현 할 수 있어야합니다. – Prune

+0

어딘가에 널 바이트를 복사 했습니까? – syntonym

+0

[코드 틀 붙여 넣기] (https://pastebin.com/uegM0AL2) –

답변

0

문제는 오류 메시지에서 알 수있는 것일 수 있습니다. 백업 복사본에 어떻게 든 하나 이상의 null 바이트 (ASCII 값 00)가 "감염"되었습니다. 한 번에 한 블록 씩 코드를 붙여 넣습니다 (예 : 50 줄). 잘못된 바이트가 들어있는 코드를 찾으십시오. 가장 최근에 추가 된 코드 (한 번에 5 줄)를 삭제하여 null 바이트가있는 코드를 찾으십시오. 문제가되는 행을 다시 입력하고 다음 행으로 이동하십시오. 'w', 덤프 다시, 파일을 닫습니다 엽니 이제

with open("homework.py", 'r') as infile: 
    hw = infile.readlines().replace(chr(0), '') 

:

또 다른 가능성은 파일을 읽고 널 바이트 문자열 replace 방법을 사용하여 제거하는 간단한 파이썬 스크립트를 작성하는 것입니다 그것에 대한 변수는 hw입니다.

+0

서브 루틴으로 진행되는 섹션에서 복사하여 잘 작동했는데, 3.6.2에서 프로그램했고, 지금까지는 그 버전에서 항상 작동했습니다. 나는 그것을 복사하고 붙이기 만하면 될 것 같아요. 도와 줘서 고마워! –