accept input file as cmdline argument

This commit is contained in:
Thibaud Gasser 2025-01-04 15:38:12 +01:00
parent 89b6b5e107
commit 87871aed4d
13 changed files with 41 additions and 19 deletions

View File

@ -17,6 +17,8 @@ def main(inp):
if __name__ == '__main__':
with open("input.txt") as inp:
import sys
infile = sys.argv[1] if len(sys.argv) > 1 else "example.txt"
with open(infile) as inp:
main(inp.readlines())

View File

@ -32,10 +32,13 @@ def test_part2():
if __name__ == "__main__":
print("Part 1 - total mass: ", calculate_total_fuel_mass("./input.txt"))
import sys
infile = sys.argv[1] if len(sys.argv) > 1 else "example.txt"
print("Part 1 - total mass: ", calculate_total_fuel_mass(infile))
test_part2()
print(
"Part 2 -- total mass: ",
calculate_total_fuel_mass("./input.txt", calculate_fuel_iterative),
calculate_total_fuel_mass(infile, calculate_fuel_iterative),
)

View File

@ -54,7 +54,9 @@ def run_program(memory, noun, verb):
if __name__ == "__main__":
tests()
with open("input.txt") as inp:
import sys
infile = sys.argv[1] if len(sys.argv) > 1 else "example.txt"
with open(infile) as inp:
memory = [int(x) for x in inp.readline().strip().split(",")]
# Pass a copy to avoid modifying the original memory
print("Part 1 answer: ", run_program(memory[:], 12, 2))

View File

@ -70,8 +70,9 @@ def tests():
if __name__ == "__main__":
tests()
with open("input.txt") as raw_input:
import sys
infile = sys.argv[1] if len(sys.argv) > 1 else "example.txt"
with open(infile) as raw_input:
lines = raw_input.readlines()
wire1, wire2 = [line.strip("\n").split(",") for line in lines]
print("Part 1 -- distance = ", find_min_distance(wire1, wire2))

View File

@ -40,5 +40,7 @@ def part2(infile):
if __name__ == "__main__":
part1("./input.txt")
part2("./input.txt")
import sys
infile = sys.argv[1] if len(sys.argv) > 1 else "example.txt"
part1(infile)
part2(infile)

View File

@ -39,4 +39,6 @@ def main(input_file):
if __name__ == "__main__":
main("input.txt")
import sys
infile = sys.argv[1] if len(sys.argv) > 1 else "example.txt"
main(infile)

View File

@ -64,4 +64,6 @@ def main(input_file):
if __name__ == "__main__":
main("input.txt")
import sys
infile = sys.argv[1] if len(sys.argv) > 1 else "example.txt"
main(infile)

View File

@ -94,4 +94,6 @@ def main(input_file):
if __name__ == "__main__":
main("input.txt")
import sys
infile = sys.argv[1] if len(sys.argv) > 1 else "example.txt"
main(infile)

View File

@ -35,7 +35,7 @@ def main(infile):
print(res)
if __name__ == "__main__":
main("input.txt")
import sys
infile = sys.argv[1] if len(sys.argv) > 1 else "example.txt"
main(infile)

View File

@ -23,4 +23,6 @@ def main(infile):
print(f"Part 2, {res}")
if __name__ == "__main__":
main("input.txt")
import sys
infile = sys.argv[1] if len(sys.argv) > 1 else "example.txt"
main(infile)

View File

@ -31,4 +31,4 @@ def rotate(l):
for j in range(256):
numbers = rotate(numbers)
numbers[6] += numbers[8]
print(f'DAY {j+1} AMOUNT OF FISH: {sum(numbers)}')
print(f'DAY {j+1} AMOUNT OF FISH: {sum(numbers)}')

View File

@ -26,8 +26,10 @@ def part2(crabs):
if __name__ == "__main__":
with open("input.txt") as infile:
crabs = [int(x) for x in infile.readline().split(",")]
import sys
infile = sys.argv[1] if len(sys.argv) > 1 else "example.txt"
with open(infile) as f:
crabs = [int(x) for x in f.readline().split(",")]
part1(crabs)
part2(crabs)

View File

@ -43,4 +43,6 @@ def main(infile):
if __name__ == "__main__":
main("input.txt")
import sys
infile = sys.argv[1] if len(sys.argv) > 1 else "example.txt"
main(infile)