2014-12-19 6 views
0

여러 가지 방법으로 시도해 보았습니다. 왜 작동하지 않는 지 모르겠지만 o.value =이 코드는 테스트했습니다.파이썬에서 세 개의 문자열 연결하기

for o in myParameterFile.parameter_list: 
    if o.parameter == 'unique_project_name': 
     lsfName = 'dip3d_' + o.value + '.bsub' 
      print lsfName 

출력 : .bsub_test

예상 출력 : dip3d_test.bsub

은 그래서 나는 또한 목록에서 문자열을 넣고 ''.join()를 사용하여 시도 .bsub 와 문자열 dip3d_의 초기 부분을 덮어 쓰는 것 같은 결과를 얻었습니다.

나는 그것이 그 일을 왜 말을 파이썬 2.7

+7

이 코드는이 출력을 생성 할 방법이 없습니다. 게시 한 결과는 프로그램의 다른 부분에서 가져와야합니다. – yole

+0

나머지 스크립트는 어디에 있습니까? 이 코드 부분에 의해 출력이 생성되지 않습니다. 'o.parameter'가 맞는지 확인하십시오? – birryree

+0

'myParameterFile'을 포함하는 첫 번째 파트를 게시하십시오. 'o.value'가''test''이면, 출력은 예상 한 것이어야합니다. –

답변

2

을 시도 할 수, 문자열 o.value 캐리지 리턴 문자를 포함하고, 인쇄하면 dip3d 텍스트를 덮어 쓰게됩니다.

+0

오른쪽에 대한 소리. 'print ''.join ('% 02X'% o.value의 ch는 % 02X ')으로 확인하고 출력에서'0D' (캐리지 리턴의 16 진 코드)를 찾으십시오. – jez

0

충분하지 컨텍스트를 사용하고 있지만, 대략적인 추측에서

lsfName = 'dip3d_{0}.bsub'.format(o.value) 
0

캐리지 리턴 '\ r'char을 포함하는 파서에서 오류가 발생했습니다.

else: 
     if char != '=' and char != '\n' and char != '\"' and != '\r': 
      valueName.append(char) 

수정되었습니다. 어리석은 실수 였어. 파서가 다른 것들을 무시하도록 수정해야합니다.

관련 문제