Neuling, viele Korpus öffnen.
shuang hat geschrieben:oh ein Missverständnis. Die Anzahl des selbigen Wortes sollen gezählt werden. Nicht die Sätze.
Code: Alles auswählen
import glob
count=0
breakNow = False
woerter = {}
for fname in glob.glob("C://**/**/Desktop/Korpus/*.txt"):
if breakNow:
break
with open(fname, "r") as infile:
woerter[fname] = {}
for line in infile:
if breakNow:
break
for word in line.split():
if count >= 2000: #wenn 200 worte eingelesen wurden
breakNow = True # ende
break
if word in woerter[fname]:
woerter[fname][word] += 1
# ich weiß jetzt nicht ob du
# count hochzählen willst
# wenn das wort schon drin ist
# oder du es addest.
# Musst du dann selber
# editieren
count += 1
print word, count
else:
woerter[fname][word] = 1
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
;-)
Jungs also ich hab da mal was gecoded. So in etwa stelle ich mir das ganze vor. Jedoch möchte ich das ganze jetzt noch mit glob für alle Dateien zusammen nutzen, wie binde ich das nur ein?
Code: Alles auswählen
import sys
from string import maketrans
import time
def einlesen():
count = {}
leer = "!\"$%&/()[]{}=?\\@*+~#'<>|,.-;:_0987654321"
trans = maketrans(leer, len(leer)* " ")
for line in file('C:/Users/Sharon/Desktop/prozess.txt','r'):
line = line.translate(trans).lower()
line.strip()
for word in line.split():
try:
count[word]+=1
except KeyError:
count[word] =1
items = count.items()
items.sort(key=lambda x: x[1], reverse=True)
for item in items:
print "%-20s %20d" % item
time.sleep(0.01)
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Du gehst die Sache nach wie vor falsch an. Auf einmal taucht das ganze verpackt in einer Funktion auf (was prinzipiell gut ist!), allerdings ohne klare Benennung, Aufgabe und Parameterübergabe und -rückgabe.
Dann hast Du eine Sortierfunktion eingebaut und dann noch eine Ausgabe - wobei das time.sleep() hier arg irritiert!
Wieso zerlegst Du das ganze nicht klarer in einzelne Schritte?
Ich würde so vorgehen; nicht unbedingt sortiert, sondern nur faktische Aufgaben:
1.) Funktion zum "Parsen" einer Datei. Wörter zählen und als Dictionary zurückgeben. Je nach Parsing, sich wiederholende Preparation auslagern.
2.) Funktion zum Bestimmen aller Dateien, die geparst werden sollen. Entweder Übergabe der Parsing-Funktion oder Rückgabe einer Liste von Dateinamen
3.) Funktion zum Speichern / Exportieren. Zur Not eben reines "print"
Daher mal hier mein Ansatz: Link
Dann hast Du eine Sortierfunktion eingebaut und dann noch eine Ausgabe - wobei das time.sleep() hier arg irritiert!
Wieso zerlegst Du das ganze nicht klarer in einzelne Schritte?
Ich würde so vorgehen; nicht unbedingt sortiert, sondern nur faktische Aufgaben:
1.) Funktion zum "Parsen" einer Datei. Wörter zählen und als Dictionary zurückgeben. Je nach Parsing, sich wiederholende Preparation auslagern.
2.) Funktion zum Bestimmen aller Dateien, die geparst werden sollen. Entweder Übergabe der Parsing-Funktion oder Rückgabe einer Liste von Dateinamen
3.) Funktion zum Speichern / Exportieren. Zur Not eben reines "print"
Daher mal hier mein Ansatz: Link
was genau ist eigl der Unterschied zwischen:
und
Danke
Code: Alles auswählen
File= open("....
Code: Alles auswählen
with blabla.open(filename, "r", encoding=coding) as infile:
Geht denn
?
Ich dachte es geht nur mit
Code: Alles auswählen
with blablabla.open(filename) as fobj
Ich dachte es geht nur mit
Code: Alles auswählen
with open(filename) as fobj
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
;-)
@INFACT: Arbeite dich etwas in das Thema "Contextmanager" ein, dann solltest du schnell verstehen, wieso das auch gehen kann. Wichtig sind halt nur die `__enter__()` und `__exit__()` Methode des Objekts.