나는 다음 명령을왜 grep이 파이썬이 볼 수없는 것을 볼 수 있습니까 (' r n')?
grep $'\r\n' tmp.txt | wc -l
을 실행하고 그 결과로 내가 얻을 :
1000
그래서, 내 파일이 \r\n
을 포함 1,000 선을 포함 결론 지었다.
out = []
finp = 'tmp.txt'
i = 0
for line in open(finp, 'rb').readlines():
if line[-2:] == '\r\n':
#if '\r\n' in line:
out.append(1)
else:
out.append(0)
print(sum(out))
을 그리고 난 결과로 0
을 얻을 : 지금은 파이썬에서 동일한 작업을 수행하려고합니다. 파이썬에서 내가하는 일은 똑같은 것은 아니다. 왜냐하면 내가 줄을 검사하지 않기 때문이다. 에는\r\n
이 포함되어있다. 그 대신에 이과 \r\n
으로 끝나는 지 확인합니다. 그러나, 나는 그것이 차이의 이유라고 생각하지 않는다. (내 경우 에선이 \r\n
으로 끝난다.
그래서 내 질문은 라인에 \r\n
조합이 포함되어 있는지 확인하는 방법입니다. 당신이 알다시피 나는 if '\r\n' in line
를 실행하려고하지만 오류가 발생합니다 :
TypeError: a bytes-like object is required, not 'str'
둘째, 나는 그것이 도움이 될 것이라고 확신하지 않는다. 파이썬이 grep이 보는 것을 "보기"위해 더 많은 것을해야합니까?
파일이 바이트 모드로 열리는 이유는 무엇입니까? 바이트 객체를 문자열과 비교하고 있습니다. –
이것이 제가 바이트 모드에서 열리는 이유입니다 : https://stackoverflow.com/questions/13953639/check-carriage-return-is-there-in-a-given-string – Roman
그런 다음'b '\ r \ 대신에. –