File reading examples improvements
Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
This commit is contained in:
parent
a7cf6aed5f
commit
4c18aefce4
|
@ -0,0 +1,5 @@
|
||||||
|
record 1: 100, 300, 50, 200
|
||||||
|
record 2 300, 450, 50, 100
|
||||||
|
record 3: 150, 200, 0, 150
|
||||||
|
record 4: 350, 200, 5O, 250
|
||||||
|
record 5: 50, 100, 200, 300
|
|
@ -0,0 +1,5 @@
|
||||||
|
record 1: 100, 300, 50, 200
|
||||||
|
record 2: 300, 450, 50, 100
|
||||||
|
record 3: 150, 200, 0, 150
|
||||||
|
record 4: 350, 200, 50, 250
|
||||||
|
record 5: 50, 100, 200, 300
|
|
@ -8,7 +8,7 @@ with open(filename, "r") as fileobj:
|
||||||
max_linelength = 0
|
max_linelength = 0
|
||||||
longest_line = -1
|
longest_line = -1
|
||||||
|
|
||||||
for i, line in enumerate(data):
|
for i, line in enumerate(fileobj):
|
||||||
if len(line) > max_linelength:
|
if len(line) > max_linelength:
|
||||||
max_linelength = len(line)
|
max_linelength = len(line)
|
||||||
longest_line = i + 1
|
longest_line = i + 1
|
||||||
|
|
|
@ -2,12 +2,15 @@
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
if len(sys.argv) >= 2:
|
||||||
filename = sys.argv[1]
|
filename = sys.argv[1]
|
||||||
|
else:
|
||||||
|
filename = "data.txt"
|
||||||
|
|
||||||
data = {}
|
data = {}
|
||||||
|
|
||||||
with open(filename, "r") as fileobj:
|
with open(filename, "r") as fileobj:
|
||||||
for i, line in enumerate(data):
|
for i, line in enumerate(fileobj):
|
||||||
line = line.strip() # remove whitespace from start/end of line
|
line = line.strip() # remove whitespace from start/end of line
|
||||||
|
|
||||||
if line.startswith('#'):
|
if line.startswith('#'):
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
if len(sys.argv) >= 2:
|
||||||
|
filename = sys.argv[1]
|
||||||
|
else:
|
||||||
|
filename = "data.txt"
|
||||||
|
|
||||||
|
data = {}
|
||||||
|
|
||||||
|
try:
|
||||||
|
with open(filename, "r") as fileobj:
|
||||||
|
for i, line in enumerate(fileobj):
|
||||||
|
line = line.strip() # remove whitespace from start/end of line
|
||||||
|
|
||||||
|
if line.startswith('#'):
|
||||||
|
# ignore comment lines
|
||||||
|
continue
|
||||||
|
|
||||||
|
name, raw_data = line.split(":", 1) # split line at first colon
|
||||||
|
items = raw_data.split(",") # split raw data at commas
|
||||||
|
|
||||||
|
data[name.strip()] = items
|
||||||
|
except OSError as exc:
|
||||||
|
print(f"Could not open file {filename}: {exc}")
|
||||||
|
|
||||||
|
for key in data:
|
||||||
|
print(key, data[key])
|
|
@ -0,0 +1,36 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
if len(sys.argv) >= 2:
|
||||||
|
filename = sys.argv[1]
|
||||||
|
else:
|
||||||
|
filename = "data.txt"
|
||||||
|
|
||||||
|
data = {}
|
||||||
|
|
||||||
|
try:
|
||||||
|
with open(filename, "r") as fileobj:
|
||||||
|
for i, line in enumerate(fileobj):
|
||||||
|
line = line.strip() # remove whitespace from start/end of line
|
||||||
|
|
||||||
|
if line.startswith('#'):
|
||||||
|
# ignore comment lines
|
||||||
|
continue
|
||||||
|
|
||||||
|
try:
|
||||||
|
name, raw_data = line.split(":", 1) # split line at first colon
|
||||||
|
except ValueError as exc:
|
||||||
|
print(f"Warning: could not parse line {i+1}: {exc}")
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
items = [int(item) for item in raw_data.split(",")] # split raw data at commas
|
||||||
|
except (ValueError, TypeError) as exc:
|
||||||
|
print(f"Warning: could not parse data on line {i+1}: {exc}")
|
||||||
|
|
||||||
|
data[name.strip()] = items
|
||||||
|
except OSError as exc:
|
||||||
|
print(f"Could not open file {filename}: {exc}")
|
||||||
|
|
||||||
|
for key in data:
|
||||||
|
print(key, data[key])
|
Loading…
Reference in New Issue