Wie drucke ich eine Variable und die Vorkommen in einer TXT -Datei aus?Python

Python-Programme
Anonymous
 Wie drucke ich eine Variable und die Vorkommen in einer TXT -Datei aus?

Post by Anonymous »

Ich muss die Zeitstempel aus einem .txt, split () bis zur Stunde extrahieren und die Stunde (sortiert) und Vorkommen drucken. Bisher habe ich das verschiedene Arten gemacht, und PyTest stimmt nie überein (aber es sieht in meinem Terminal gleich) aus einer früheren Übung (unten) überein. Ich gehe davon aus, dass ich die Operationen in einem einzigen Block erledigen muss. Bisher habe ich 2 oder 3 Blöcke verwendet (in verschiedenen Versionen, um die gewünschte Ausgabe zu erreichen) < /p>
PyTest übergibt diesen Code aus einer früheren Übung < /p>

Code: Select all

def exercise_8_5():

count = 0
fname = "mbox-short.txt"
if len(fname) < 1:
fname = "mbox-short.txt"

fh = open(fname)
for line in fh:
word = line.split()
if line.startswith('From '):
print(word[1])
count += 1

print("There were", count, "lines in the file with From as the first word")
< /code>
Aus readme.md Anweisung: < /p>
 Gewünschte Ausgabe.  Mein Ausgang < /h3>
Ich habe verschiedene andere Ausgänge mit .Join für eine einzelne Zeichenfolge mit '\ n' anstelle des Druckens aus einer Schleife unter Verwendung von counter () auf einer Liste, verschiedenen Daten ausprobiert, ausprobiert Strukturen, die ich mir vorstellen könnte, sieht immer gleich aus, passt aber nicht < /p>
 vorbei     04 3         ('04', 3)
06 1         ('06', 1)
07 1         ('07', 1)
09 2         ('09', 2)
10 3         ('10', 3)
11 6         ('11', 6)
14 1         ('14', 1)
15 2         ('15', 2)
16 4         ('16', 4)
17 2         ('17', 2)
18 1         ('18', 1)
19 1         ('19', 1)
< /code>
 Eine meiner Versionen < /h3>
def exercise_10_2():
lst = list()
lst2 = list()
dict = {}

#name = input("Enter file:")
name = 'mbox-short.txt'
if len(name) < 1:
name = "mbox-short.txt"
handle = open(name)

for line in handle:
if line.__contains__('From '):
word = line.split()
time = word[5].split()
hr = word[5].format_map(time)
lst.append(hr)

for time in lst:
time.split()
lst2.append(time[0:2])
lst2.sort()

for sent_time in lst2:
if sent_time in dict:
dict[sent_time] += 1
else:
dict[sent_time] = 1
for item in list(sorted(dict.items())):
print(item)
< /code>
Ausgabe: (Ausgabe wird ein Index pro Zeile gedruckt, aber ich habe versucht, die Liste auf einer Zeile ohne Glück zu drucken)
('04', 3)
('06', 1)
('07', 1)
('09', 2)
('10', 3)
('11', 6 )
('14', 1)
('15', 2)
('16', 4)
('17', 2)
('18', 1)
('19', 1) < /p>
 PyTest Assert < /h3>
Assert eroberte captured_output.out.strip () in ['04 3 \ n06 1 \ n07 1 \ n09 2 \ n10 3 \ n11 6 \ n14 1 \ n15 2 \ n16 4 \ n17 2 \ n18 1 \ n19 1 '], falsche Ausgabe. Erwartete Ausgabe in Readme.md "< /p>
 Fehlermeldung < /h3>
========================= FAILURES ===============================
___________________ test_exercise_10_2_output ____________________
monkeypatch = ,
capsys = 

def test_exercise_10_2_output(monkeypatch, capsys):
responses = iter(['mbox-short.txt'])
monkeypatch.setattr('builtins.input', lambda msg: next(responses))

exercise_10_2()

captured_output = capsys.readouterr()
assert captured_output.out.strip()
in ['04 3\n06 1\n07 1\n09 2\n10 3\n11 6\n14 1\n15 2\n16 4\n17 2\n18 1\n19 1'],
"Incorrect output.
Expected output found in README.md"
E    AssertionError: Incorrect output.  Expected output found in README.md
E    assert "('04', '3')('06', '1')('07', '1')('09', '2')('10', '3')
('11', '6')('14', '1')('15', '2')('16', '4')('17', '2')('18', '1')('19', '1')"
in ['04 3\n06 1\n07 1\n09 2\n10 3\n11 6\n14 1\n15 2\n16 4\n17 2\n18 1\n19 1']
E     +  where "('04', '3')('06', '1')('07', '1')('09', '2')('10', '3')
('11', '6')('14', '1')('15', '2')('16', '4')('17', '2')('18', '1')('19', '1')"
= ()
E     +    where 
= "('04', '3')('06', '1')('07', '1')('09', '2')('10', '3')('11', '6')('14', '1')
('15', '2')('16', '4')('17', '2')('18', '1')('19', '1')\n".strip
E     +      where "('04', '3')('06', '1')('07', '1')('09', '2')('10', '3')
('11', '6')('14', '1')('15', '2')('16', '4')('17', '2')('18', '1')('19', '1')\n"
= CaptureResult(out="('04', '3')('06', '1')('07', '1')('09', '2')('10', '3')
('11', '6'          ('14', '1')('15', '2')('16', '4')('17', '2')
('18', '1')('19', '1')\n", err='').out

assignment_test.py:13: AssertionError
==================================== short test summary info ===================
FAILED assignment_test.py::test_exercise_10_2_output - AssertionError: Incorrect
output. Expected output found in README.md
< /code>
 Hier sind die extrahierten Zeitstempel von mbox-sort.txt: < /h3>
['09:14:16']
['18:10:48']
['16:10:39']
['15:46:24']
['15:03:18']
['14:50:18']
['11:37:30']
['11:35:08']
['11:12:37']
['11:11:52']
['11:11:03']
['11:10:22']
['10:38:42']
['10:17:43']
['10:04:14']
['09:05:31']
['07:02:32']
['06:08:27']
['04:49:08']
['04:33:44']
['04:07:34']
['19:51:21']
['17:18:23']
['17:07:00']
['16:34:40']
['16:29:07']
['16:23:48']

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post