課題をさばく:dropboxで集めた課題と履修名簿から提出一覧を自動生成

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
課題をさばく:dropboxで集めた課題と履修名簿から提出一覧を自動生成 [2019/11/13 08:32] – 作成 baba課題をさばく:dropboxで集めた課題と履修名簿から提出一覧を自動生成 [2019/11/13 15:00] (現在) baba
行 14: 行 14:
 | 0123456787  | 1    | 0    | | 0123456787  | 1    | 0    |
  
 +以下 ファイル構成は以下の通りとして、実行するprintList.pyはmember.csv(履修登録学籍番号が順番に一行ずつはいったもの)
 +<file>
 +└── 2019
 +    ├── kadai1
 +    ├── kadai2
 +    ├── kadai3
 +    ├── member.csv
 +    ├── printList.py
 +</file>
 +<file .py printList.py>
 +import os
 +import glob
 +import sys
 +import csv
 + 
 +args = sys.argv[1:]
 +
 +
 +def getNumberList(_files): 
 +    number_list = []
 +    
 +    for f in _files:
 +        name_parent_directory = os.path.basename(os.path.dirname(os.path.abspath(f)))           
 +        filename =  os.path.basename(f)
 +        ftitle, text = os.path.splitext(filename)
 +        number_list.append([name_parent_directory, ftitle.split(' ')[3]])
 +    return number_list
 +
 +
 +# Get all student number based on submitted files.
 +number_list = getNumberList(args)
 +number_list.sort()
 +
 +# Create a kind of kadai array. How many kadai is imposed today?
 +kind_of_parent_directory = []
 +for f in args:
 +    name_parent_directory = os.path.basename(os.path.dirname(os.path.abspath(f)))
 +    kind_of_parent_directory.append(name_parent_directory)
 +
 +# Create unique KADAI name as a list, such as kadai1, kadai2,     
 +kind_of_parent_directory = list(set(kind_of_parent_directory))
 +
 +# Prepare for all result list
 +score_lists = []
 +titles = []
 +titles.append("Number")
 +for i in range(len(kind_of_parent_directory)):
 +    titles.append(kind_of_parent_directory[i])
 +score_lists.append(titles)
 +
 +# Be sure to prepare all sutudents number on your class
 +f_csv = open('member.csv', 'r')
 +reader_csv = csv.reader(f_csv, delimiter=",")
 +
 +# Main
 +for r_csv in reader_csv:
 +    score_list = []
 +    score_list.append(r_csv[0])
 +    for i in range(len(kind_of_parent_directory)):        
 +        count_submitted = 0
 +        for nl in number_list:
 +            if int(r_csv[0]) == int(nl[1]) and kind_of_parent_directory[i] == nl[0]:
 +                score_list.append(1)
 +                count_submitted += 1
 +        if count_submitted != 1:
 +            score_list.append(0)
 +    score_lists.append(score_list)
 +
 +# print result on standart output.
 +for list in score_lists:
 +    count = 0    
 +    for value in list:        
 +        if count != len(list) -1:
 +            print str(value)+",",
 +        else:
 +            print str(value)
 +        count += 1
 +</file>
  
  
  
  
  • /home/users/2/lolipop.jp-4404d470cd64c603/web/ws/data/attic/課題をさばく/dropboxで集めた課題と履修名簿から提出一覧を自動生成.1573601550.txt.gz
  • 最終更新: 2019/11/13 08:32
  • by baba