2017-10-10 8 views
1

파이썬 (3.6) 및 ftplib에 관한 질문이 있습니다. Windows (10)를 다시 설치했고 이전 스크립트 중 하나가 작동하지 않습니다. 문제 라인은 다음과 같습니다Python 3.6 ftplib STOR 오류

conn.storlines ('STOR의 runes.txt'오픈 ('D : \ runes.txt', 'R')) 내가 점점 계속

오류는 다음과 같습니다

Traceback (most recent call last): 
    File "C:\Users\ch1zra\Saved Games\Diablo II\linereader.py", line 108, in <module> 
    conn.storlines('STOR runes.txt', open('D:\\runes.txt','r')) 
    File "C:\Python\lib\ftplib.py", line 536, in storlines 
    if buf[-1] in B_CRLF: buf = buf[:-1] 
TypeError: a bytes-like object is required, not 'str' 

파일이 존재합니다. 이 코드는 이전에는 작동했지만 이전 버전의 Python (2.7 IIRC)을 실행하고있었습니다.

도움을 주신 데 대해 감사드립니다. 미리 감사드립니다.

답변

2

TypeError 예외는 개체와 같은 바이트가 필요하다고 말합니다. 바이너리 모드로 파일을 엽니 다.

변화에

conn.storlines('STOR runes.txt', open('D:\\runes.txt','r')) 

:

그것은 actualy 일
conn.storlines('STOR runes.txt', open('D:\\runes.txt','rb')) 
+0

하지만, TXT 파일은 'R'모드로 열 수 없습니다해야합니까? 감사합니다. – ch1zra

+0

예, 그렇습니다. 그것은 여전히 ​​읽을 수 있으며, 단지 바이너리로 변환됩니다. 문서 페이지 '따라서 바이너리 파일을 열 때 바이너리 모드로 파일을 열려면 모드 값에 'b'를 추가해야합니다. 그러면 이식성이 향상됩니다. ('b'를 붙이는 것은 바이너리와 텍스트 파일을 다르게 취급하지 않는 시스템에서도 유용하다. – Jajo