-
Notifications
You must be signed in to change notification settings - Fork 0
/
create_files_ABC_rs.py
66 lines (55 loc) · 1.7 KB
/
create_files_ABC_rs.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import os
import subprocess
from collections import defaultdict
def main():
n = int(input("回数を入力 : "))
dic: defaultdict[int, set[int]] = defaultdict(set)
# 400回目まで作成可能
for i in range(40):
for j in range(10):
dic[f"{i*10+1}-{(i+1)*10}"].add(i * 10 + 1 + j)
a = ""
for k, v in dic.items():
if n in v:
a = str(k)
break
if a == "":
print("その回数は作成できません")
return
dir_path = f"ABC\\{a}\\{n}\\src\\bin"
subprocess_dir_path = f"ABC\\{a}\\{n}"
# D問題まで作成
files = [f"{v}.rs" for v in "abcd"]
# テンプレートの読み込み
try:
f = open(".\\template\\init_template.rs", "r")
init_template = f.read()
f.close()
except:
print("テンプレートが見つかりません")
return
# ディレクトリの作成 既に存在する場合はエラーを返す
try:
os.makedirs(dir_path)
except:
print("そのディレクトリは既に存在します")
return
# ファイルを作成してテンプレートを書き込む
try:
subprocess.run(
["cargo", "init", "--bin", "--name", f"abc{n}"], cwd=subprocess_dir_path
)
subprocess.run(
["cargo", "add", "proconio@0.3.6"],
cwd=subprocess_dir_path,
)
os.remove(f"{subprocess_dir_path}\\src\\main.rs")
for val in files:
f = open(f"{dir_path}\\{val}", "x")
f.write(init_template)
f.close()
except:
print("ファイル作成に失敗しました")
return
if __name__ == "__main__":
main()