2016-08-05 3 views
0

파이썬에서 문자열을 선언하고 값을 읽는 것 사이의 차이점은 무엇입니까?문자열을 선언하는 것과 문자열을 선언하는 것의 차이점

나는처럼 보이는 내 코드 코드의 조각을 가지고

file = open('comport.txt','r') 

for line in file: 
    if "comport" in line: 
     comport = line[9:] 

및 텍스트 파일은 다음과 같습니다

comport= COM1 

나는 시리얼 포트를 열려고, 내가 할 :

ser = serial.Serial(comport,baudrate=115200) 

는 (오류의 무리)를 작동하지 않는,하지만이 작동합니다

,
comport = 'COM1' 
ser = serial.Serial(comport,baudrate=115200) 

나는 텍스트 파일에 따옴표를 넣어 시도하고 그 중 하나가 작동하지 않았다, 내가하려고 할 때 그것을 인쇄하기 때문에 내가 너무 제대로 내 라인을 분할하고있어 확실 해요, 그것은 COM1

인쇄
+1

는 아마 후 여전히'\의 n'이'COM1' –

+0

난 당신이() file.readlines에 라인'을 의미 생각 :'또한, 변수 이름으로'file'을 사용 자제해야, 파이썬이 내장되어 있습니다. – Will

+1

@Will : 아니요, 파일 객체는 버퍼를 사용하여 필요에 따라 줄을 생성하는 반복 가능합니다. 메모리 효율적입니다.) 대신에 file.readlines()를 사용하여 모든 줄을 먼저 메모리로 읽어 들이고 ** 좋은 생각이 아닙니다 ** . 'file'은 파이썬 2에서 파이썬 3에서 이름이없는 타입의 이름입니다. 그것은 거의 사용되지 않으므로 마스크하지 않는 것이 좋지 않습니다. 그래도 다른 이름으로 지정하는 것이 좋습니다. –

답변

2

아마도 "COM1" 다음에 줄 바꿈 \n이있을 것입니다.

comport = line.split("=")[1].strip() 

또한, 당신은 와 가까운 파일을 열 with를 사용해야하고, 변수 이름으로 file을 사용하지 마십시오

comport = line[9:].strip() 

나이 :이보십시오.

with open('comport.txt','r') as f: 
    for line in f: 
관련 문제