2014-09-22 5 views
0

그래서 텍스트 파일을 읽고 문자열과 정수를 일부 정렬로 출력하는 프로그램을 만들려고합니다.텍스트 파일에서 정수와 문자열을 정렬하는 방법은 무엇입니까?

문자열이있는 행을 인쇄하고 텍스트 파일의 모든 정수 목록을 작성하고 싶습니다. (최소, 최대, 중앙값 등을 찾기 위해 정수를 더 사용하기 위해)

Ive는 완전히 불행하게 붙잡 혔고 붙 잡혔다.

def readfile(file): 
    try: 
     f = open(file, 'r') 
     fil = f.readlines() 
     f.close() 
     return fil 
    except IOError: 
     print('fil finns inte') 
     return None 

def rader(rowlist): 
    k=rowlist 
    l=[] 
    try: 
     for i in k: 
      l.append(int(i.strip())) 
      return l 
    except: 
     print("sds") 

따라서이 코드는 obviosuly 완료되지 않았으며 현재 doctest로 실행됩니다. 나는 정수로 정렬하고자하는 부분과 행 번호가있는 togeather를 출력 할 문자열을 고집했습니다.

그래서 obviosuly 나는 정수를 치고 목록에 추가 할 때 문서의 목록을 통과하는 루프를 원합니다. 그리고 문자열에 도달 할 때, 그저 예외 나 그와 비슷한 것을 막을 것입니다. 행 (i)의 번호로 togeather 문자열을 출력합니다.

어떻게 만드나요? 나는 매우 복잡한 프로그램을 찾고있는 것이 아니라 단순한 반복문을 사용하여 코드 작성 방법을 머리에서 볼 수 있습니다.

당신의 진정으로 고민하는 학생.

답변

0

예를 참조하십시오 : 정말 두 번째 부분을 이해하지 못하고 있지만,

def get_integer_or_none(text): 
    ''' 
    Returns integer from text or None if text is not an integer. 
    ''' 
    try: 
     return int(text) 
    except ValueError: 
     return None 

for text in ('1', 'some text', '2 not an integer', '-1000'): 
    integer_value = get_integer_or_none(text) 
    if integer_value is not None: 
     print('This text "{}" is an integer ({})'.format(text, integer_value)) 
    else: 
     print('This text "{}" is not an integer'.format(text)) 
+0

감사합니다. 정교하게 신경 쓰시겠습니까? – Karl

+0

두 번째 부분은 '1', 'some text', '2 not an integer', '-1000'의 4 개 문자열에 대한 예입니다. 각 문자열에 대해 get_interger_or_none() 함수를 사용하고 결과가 정수인 경우 인쇄합니다. – jms