2017-11-02 3 views
0

내가 얼마나 읽기 사용자에게 수학 함수를 적용 :자동화 읽는 사용자와는

  1. 자동화는 행의 모든 ​​사용자가 읽기 [0] 설정 파일의 CSV의 그 사용자에게 저장
  2. 그런 다음,
  3. CSV 파일 형식으로

의는 그들 각각의 연산 기능을 통해 그 출력 할 다른 값을 모두 실행 같은 : (DEREK, 23, 12.344444444, 5) 출력 예상 : 143.34

지금은 모든 사용자를 찾는 사용자 상호 작용이 있지만 더 빠른 프로그램을 사용하려면이 요구 사항을 변경해야합니다.

with open("main.csv") as input: 
    for row in csv.reader(f_input): 
     data.append((row[0], int(row[1]), int(row[2]))) #row[0] being strings aka the users the rest are their values 

with open("user_dat.csv") as usr_in: 
    for rows in csv.reader(usr_in): 
     usr_dat.append((rows[0], int(rows[1]), int(rows[2]), int(rows[3]))) 

with open("all_user_values.csv", 'wb') as out: 
    writer = csv.writer(out) 
    for usrs, val, val1 in usr_dat: # problem lies here because i have no idea how to go about doing this 
     for usr, chng, cst in data: 

     if act_name in usrs: 
      if name in usr: 
       do(stuff) 
+0

나는 여전히 다른 두 파일이 방법의 예를 줘. 당신이 'all_user_values.csv'파일에 쓰기를 시도하는 것이 아니다 단서가 어떤 출력 결과 파일에 대한 예상된다. 주요 – Adirio

+0

을. csv = 여러 사용자와 연관된 값이있는 주 데이터 세트 user_dat.csv = 모든 사용자와 함께 설정된 사용자 all_user_values.csv는 main.csv + user_dat.csv에서 합계 된 모든 사용자 및 값이 저장되는 곳입니다 형식을 CSV의 동일합니다 : (DEREK, 23, 12.344444444) 출력 예상 : 143.34 –

답변

0

하자. 두 개의 목록이 있습니다. 각 목록에는 "사용자"당 세 개의 항목 (이름 및 두 개의 int 값)이 있습니다.

각 목록 (또는 두 목록을 포함하는 목록이 더 좋음)을 반복하고 목록의 각 항목에 대해 "do"를 호출 할 수 있습니다 (항목은 모두 세 개의 값을 터플로 사용하므로

).
validated_names = ['name1', 'name2'] 
final_list = data + usr_dat # Both lists combined into one 
for user_tuple in final_list: 
    do_stuff(user_tuple) 

def do_stuff(user_tuple): 
    name, int_values_tuple = user_tuple 
    if name in validated_names: 
     do_other_stuff(int_values_tuple) 

def do_other_stuff(packed_values): 
    if len(packed_values) == 2: 
     calc_two_ints(packed_values) 
    elif len(packed_values) == 3: 
     calc_three_ints(packed_values) 
    else: 
     pass # No such cases for now. 

def calc_two_ints(packed_values): 
    val1, val2 = packed_values 
    # Do something 

def calc_three_ints(packed_values): 
    val1, val2, val3 = packed_values 
    # Do something 
+0

네, 맞아요 일부 사용자는 3 값을 언급하는 걸 깜빡 했군 –

+0

12 명 이상이 추가 될 것 같아 그래서 나는 내가 EOF에 도달 할 때까지 config 파일을 반복 할 필요가있다 –

+0

이 목록에 넣지 않고 두 데이터 세트에 있다면 그냥 확인하고 비교하는 방법이 있는가? –