2014-09-17 6 views
-3

아래의 Python 코드가 의도 한대로 작동하지 않습니다.파이썬 스크립트 출력의 초보자 문제

최종 출력에 출력 될 것으로 예상되는 모든 행이 누락되었습니다 (output_data[1] == "S").

클라이언트 ID를 혼란스럽게하는 게으른 시도가 실패한 것 같습니다.

import csv 

TID = 0 
ACCT_TYPE = 1 
PRODUCT_TYPE = 2 
NUM_ACCT_OWNERS = 3 
NUM_ACCT = 4 
COMBINED_BALANCES = 5 
TID_BALANCES = 6 
INSURED_BALANCES = 7 
ESTIMATED_UNINSURED = 8 
FOREIGN_IND = 9 

#output_data = [None] * 10 

header_row_processed = False 

with open("U:\exampletext.txt", 'r') as csvfile: 
CIN = csv.reader(csvfile, delimiter="\t") 
file_output_data = [] 
for row in CIN: 

    if not header_row_processed: 
     header_row_processed = True 
     continue 

    if not row[ACCT_TYPE] == "I" or row[ACCT_TYPE] == "S": 
     continue 

    if not row[PRODUCT_TYPE] == "Total": 
     continue 

    output_data = [None] * 6 

    client_id = row[TID] 
    client_id.replace("0", "x") 
    client_id.replace("1", "d") 
    client_id.replace("2", "h") 
    client_id.replace("3", "g") 
    client_id.replace("4", "v") 
    client_id.replace("5", "n") 
    client_id.replace("6", "m") 
    client_id.replace("7", "q") 
    client_id.replace("8", "w") 
    client_id.replace("9", "r") 
    client_id.replace("-", "u") 
    output_data[0] = client_id 

    output_data[1] = row[ACCT_TYPE] 

    output_data[2] = row[PRODUCT_TYPE] 

    output_data[3] = row[COMBINED_BALANCES] 

    output_data[4] = str(min(float(row[COMBINED_BALANCES])/float(row[NUM_ACCT_OWNERS]), 250000*float(row[NUM_ACCT_OWNERS]))) 

    output_data[5] = str(max(0, (float(row[COMBINED_BALANCES])/float(row[NUM_ACCT_OWNERS]))-(250000*float(row[NUM_ACCT_OWNERS])))*(float(row[NUM_ACCT_OWNERS]))) 

    file_output_data.append("\t".join(output_data)) 

    #file_output_data = ','.join(str(v) for v in value_list) 

    if output_data[1] == "I": 
     out_file = open(
     'U:\path_one.txt', 'w') 
     out_file.write("\n".join(file_output_data)) 
     out_file.close() 

    if output_data[1] == "S": 
     out_file = open(
     'U:\path_two.txt', 'w') 
     out_file.write("\n".join(file_output_data)) 
     out_file.close() 
+3

당신은 들쭉날쭉 한 것처럼 보이지 않습니다. –

+0

예상 출력과 실제 출력을 보여줄 수 있습니까? – Llopis

+1

끔찍한 문제 설명입니다. 코드를 [최소 예제] (http://stackoverflow.com/help/mcve)로 줄이고 들여 쓰기를 수정할 수 있습니까? 당신은 무엇을 기대 했는가, 대신 무엇을 보았습니까? * "실패"는 정확히 무엇을 의미합니까? – jonrsharpe

답변

0

귀하의 오류는 부분에 있습니다

client_id = row[TID] 
client_id.replace("0", "x") 
client_id.replace("1", "d") 
client_id.replace("2", "h") 
client_id.replace("3", "g") 
client_id.replace("4", "v") 
client_id.replace("5", "n") 
client_id.replace("6", "m") 
client_id.replace("7", "q") 
client_id.replace("8", "w") 
client_id.replace("9", "r") 
client_id.replace("-", "u") 
output_data[0] = client_id 

이동은 대한 단위 테스트를 작성하고 코드가 무엇을 참조하십시오. 대체는 당신이 생각하는대로하지 않습니다.