TypeError : 유니 코드로 강제 변환 : 문자열 또는 버퍼 필요
이 코드는 다음 오류 메시지를 반환합니다.
open (infile, mode = 'r', buffering = -1) as in_f, open (outfile, mode = 'w', buffering = -1) as out_f : TypeError : coercing to Unicode : need string or buffer, file found
# Opens each file to read/modify infile=open('110331_HS1A_1_rtTA.result','r') outfile=open('2.txt','w') import re with open (infile, mode='r', buffering=-1) as in_f, open (outfile, mode='w', buffering=-1) as out_f: f = (i for i in in_f if i.rstrip()) for line in f: _, k = line.split('\t',1) x = re.findall(r'^1..100\t([+-])chr(\d+):(\d+)\.\.(\d+).+$',k) if not x: continue out_f.write(' '.join(x[0]) + '\n')
누군가 나를 도와주세요.
각 파일을 두 번 열려고합니다! 먼저 다음을 수행합니다.
infile=open('110331_HS1A_1_rtTA.result','r')
그런 다음 infile
(파일 객체 인) open
함수에 다시 전달합니다.
with open (infile, mode='r', buffering=-1)
open
물론 첫 번째 인수는 열린 파일이 아니라 파일 이름이 될 것으로 예상합니다!
파일을 한 번만 열면 괜찮습니다.
덜 구체적인 경우의 경우 (질문의 코드뿐만 아니라-이 일반 오류 메시지에 대한 Google의 첫 번째 결과 중 하나이기 때문입니다.이 오류는 None 인수로 특정 os 명령을 실행할 때도 발생합니다.
예를 들면 :
os.path.exists(arg)
os.stat(arg)
arg가 None이면이 예외를 발생시킵니다.
파일 개체를 파일 이름으로 전달하려고합니다. 사용해보십시오
infile = '110331_HS1A_1_rtTA.result'
outfile = '2.txt'
코드 상단에 있습니다.
(의 두 배 사용하지뿐만 아니라 open()
원인을 그 파일을 다시 열어 그것은 또한 수단 시도와 문제 infile
및 outfile
그들은 아마도 프로그램이 종료되면 폐쇄거야하지만, 실행 과정에서 폐쇄되지 않습니다 있습니다.)
다음은 Python 2에서 찾은 가장 좋은 방법입니다.
def inplace_change(file,old,new):
fin = open(file, "rt")
data = fin.read()
data = data.replace(old, new)
fin.close()
fin = open(file, "wt")
fin.write(data)
fin.close()
예 :
inplace_change('/var/www/html/info.txt','youtub','youtube')
참조 URL : https://stackoverflow.com/questions/6680066/typeerror-coercing-to-unicode-need-string-or-buffer
'Programing' 카테고리의 다른 글
jQuery serializeArray가 클릭 한 제출 버튼을 포함하지 않습니다. (0) | 2020.12.31 |
---|---|
REST를 사용해야하는 이유는 무엇입니까? (0) | 2020.12.31 |
Java Set에서 * 모든 * 값을 얻는 좋은 방법은 무엇입니까? (0) | 2020.12.31 |
사용자 정의 열거 형도 직렬화 가능합니까? (0) | 2020.12.30 |
Spring MVC를 사용하여 생성 된 PDF 반환 (0) | 2020.12.30 |