-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathassignment3.py
More file actions
110 lines (80 loc) · 2.62 KB
/
Copy pathassignment3.py
File metadata and controls
110 lines (80 loc) · 2.62 KB
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
import random
import json
# -----------------------------
# QUESTION 1: Data Generation
# -----------------------------
print("QUESTION 1: Data Generation")
numbers = [random.randint(10, 100) for _ in range(15)]
print("Generated Numbers:", numbers)
total = sum(numbers)
average = total / len(numbers)
print("Total:", total)
print("Average:", average)
# -----------------------------
# QUESTION 2: File Writing
# -----------------------------
print("\nQUESTION 2: Writing to File")
try:
with open("data.txt", "w") as file:
for num in numbers:
file.write(str(num) + "\n")
print("Data successfully saved to data.txt")
except Exception as e:
print("Error writing to file:", e)
# -----------------------------
# QUESTION 3: File Reading & Analysis
# -----------------------------
print("\nQUESTION 3: Reading and Analysis")
try:
with open("data.txt", "r") as file:
data = file.readlines()
numbers_from_file = [int(line.strip()) for line in data]
print("Numbers from file:", numbers_from_file)
print("Maximum:", max(numbers_from_file))
print("Minimum:", min(numbers_from_file))
print("Average:", sum(numbers_from_file) / len(numbers_from_file))
except FileNotFoundError:
print("Error: data.txt file not found.")
except ValueError:
print("Error: File contains non-numeric data.")
# -----------------------------
# QUESTION 4: Exception Handling
# -----------------------------
print("\nQUESTION 4: Exception Handling")
try:
with open("data.txt", "r") as file:
data = file.readlines()
numbers_safe = []
for line in data:
try:
num = int(line.strip())
numbers_safe.append(num)
except ValueError:
print("Invalid data skipped:", line.strip())
if numbers_safe:
print("Max:", max(numbers_safe))
print("Min:", min(numbers_safe))
print("Average:", sum(numbers_safe) / len(numbers_safe))
except FileNotFoundError:
print("Error: data.txt file not found.")
# -----------------------------
# QUESTION 5: JSON Handling
# -----------------------------
print("\nQUESTION 5: JSON Storage")
data_dict = {
"data": numbers,
"total": total,
"average": average
}
try:
with open("data.json", "w") as json_file:
json.dump(data_dict, json_file, indent=4)
print("Data saved to data.json")
with open("data.json", "r") as json_file:
loaded_data = json.load(json_file)
print("JSON Data:")
print("Numbers:", loaded_data["data"])
print("Total:", loaded_data["total"])
print("Average:", loaded_data["average"])
except Exception as e:
print("JSON error:", e)