Verfasst: Montag 5. April 2010, 18:17
habs gelöst, sehr nett dankeschön...
Seit 2002 Diskussionen rund um die Programmiersprache Python
https://www.python-forum.de/
Kenne glob zwar nicht aber das sollte funtkionieren:shuang hat geschrieben:Ich möchte einfach nur wissen, wieso mein Ordner= Korpus
nicht eingelesen wird.
Ich möchte doch einfach nur die Textdateien im Ordner Korpus auf dem Desktop einlesen lassen, sonst nichts.
Wenn ich das ganze über die Eingabeaufforderung durchführe, bekomme ich eine txt datei aus dem Eigene Dateien Ordner aufgelistet. Obwohl ich doch den genauen Pfad auf meinem Desktop zeige.
Code: Alles auswählen
import glob, os
path = "C:\\Users\Sharon\Desktop\Korpus"
for fname in glob.glob("*.txt"):
with open(os.path.join(path, fname), "r") as infile:
for line in infile:
print line
Code: Alles auswählen
import glob
count=0
for fname in glob.glob("C://**/**/Desktop/Korpus/*.txt"):
with open(fname, "r") as infile:
for line in infile:
for word in line:
count+= 1
print line
shuang hat geschrieben:Also, wenn ich das genauso in der Form eingebe, liest er die Textdateien ein, jedoch kann ich die Worte in den Textdateien nicht zählen lassen.
Für jede einzelne Textdatei > Zahl der Worte.
Code: Alles auswählen
import glob count=0 for fname in glob.glob("C://**/**/Desktop/Korpus/*.txt"): with open(fname, "r") as infile: for line in infile: for word in line: count+= 1 print line
Code: Alles auswählen
import glob
count=0
for fname in glob.glob("C://**/**/Desktop/Korpus/*.txt"):
with open(fname, "r") as infile:
for line in infile:
for word in line.split():
count+= 1
print line
Was falsch ist, dass sich selbst nach solchen Posts immer noch Leute finden, die dir antworten(:K@INFACT), da fehlt mir das Verständnis für.shuang hat geschrieben:Meine Herren , ich mache da was falsch )))))))))))))
[...]
Gibts Dich auch in intelligent? Du hast einen IQ von 6... bei 8 grunzt die Sau!
Naja, er hat es ja immerhin noch eingesehen:Darii hat geschrieben:Was falsch ist, dass sich selbst nach solchen Posts immer noch Leute finden, die dir antworten(:K@INFACT), da fehlt mir das Verständnis für.shuang hat geschrieben:Meine Herren , ich mache da was falsch )))))))))))))
[...]
Gibts Dich auch in intelligent? Du hast einen IQ von 6... bei 8 grunzt die Sau!
Ok, ein Wort des guten Willens vermisse ich auch - etwa "Sorry, hatte nen Brett vorm Kopf. Danke, jetzt hab ich es endlich kapiert..."shuang hat geschrieben: habs gelöst, sehr nett dankeschön... Wink
Code: Alles auswählen
import glob
count=0
while count != ????:
for fname in glob.glob("C://**/**/Desktop/Korpus/*.txt"):
with open(fname, "r") as infile:
for line in infile:
for word in line.split():
if word == word[1]:
count+= 1
print line, count
Entschuldige mich mal, aber was ist eigl dein Problem ?Hyperion hat geschrieben:Naja, er hat es ja immerhin noch eingesehen:Darii hat geschrieben:Was falsch ist, dass sich selbst nach solchen Posts immer noch Leute finden, die dir antworten(:K@INFACT), da fehlt mir das Verständnis für.shuang hat geschrieben:Meine Herren , ich mache da was falsch )))))))))))))
[...]
Gibts Dich auch in intelligent? Du hast einen IQ von 6... bei 8 grunzt die Sau!Ok, ein Wort des guten Willens vermisse ich auch - etwa "Sorry, hatte nen Brett vorm Kopf. Danke, jetzt hab ich es endlich kapiert..."shuang hat geschrieben: habs gelöst, sehr nett dankeschön... Wink
Aber was solls.
Ich werde das Gefühl auch immer noch nicht los, dass es da eine Sprachbarriere gibt... der Nickname und die Art erinnern mich leider immer noch an gewisse Leute, die einem hier an der Uni Tag täglich das Leben schwer machen. Leider äußert sich der OP ja nicht zu Rückfragen...
Gar nichts! Wozu das while? Das hat doch mit dem Zählen überhaupt nichts zu tun!shuang hat geschrieben:1. Was muss an den Stellen an denen ich die Fragezeichen gesetzt habe hin, damit die Worte in den Texten gezählt werden?Code: Alles auswählen
import glob count=0 while count != ????: for fname in glob.glob("C://**/**/Desktop/Korpus/*.txt"): with open(fname, "r") as infile: for line in infile: for word in line.split(): if word == word[1]: count+= 1 print line, count
Code: Alles auswählen
if word == word[1]:
Code: Alles auswählen
In [1]: s = "fo"
In [2]: if s == s[1]:
...: True
...:
...:
In [3]: s[1]
Out[3]: 'o'
Was heißt das nun? Willst Du die Wörter für die Texte getrennt zählen? Oder was? "fname" ist ja in jedem Durchlauf ein andererDateiname. Diese könntest Du Dir ja ggf. in einer Datenstruktur merken... für das getrennte Zählen von Worten böte sich da ein dict an:2. Wie kann ich obwohl ich mit Glob alle Textdateien einlese, dennoch die Texte trennen?
Code: Alles auswählen
counts = {}
# dann for
# und die ganze Zählerei
# ganz am Ende der äußeren Schleife:
counts[fname] = count
Ok. Schade, dass ich das erst nach meinem letzten Post gelesen habe... der Fairness für andere spätere Leser lasse ich meine Lösung mal stehen.shuang hat geschrieben: Entschuldige mich mal, aber was ist eigl dein Problem ?
Ist dir langweilig? Oder willst du einfach nur meine Nr? hehehehe
shuang hat geschrieben:1. Was muss an den Stellen an denen ich die Fragezeichen gesetzt habe hin, damit die Worte in den Texten gezählt werden?Code: Alles auswählen
import glob count=0 while count != ????: for fname in glob.glob("C://**/**/Desktop/Korpus/*.txt"): with open(fname, "r") as infile: for line in infile: for word in line.split(): if word == word[1]: count+= 1 print line, count
2. Wie kann ich obwohl ich mit Glob alle Textdateien einlese, dennoch die Texte trennen?
Danke
Code: Alles auswählen
import glob
count=0
breakNow = False
for fname in glob.glob("C://**/**/Desktop/Korpus/*.txt"):
if breakNow:
break
with open(fname, "r") as infile:
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 == word[1]: # keine ahnung was das soll!?
count+= 1
print line, count
if len(word) > 1: # vielleicht sollen das keine einzelnen Buchstaben sein?
count += 1
print line, count
Code: Alles auswählen
corpus_stats = {
"file1.txt": {
"lorem": 8,
"...": 3
},
"file2.txt": {
...
}
}
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
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)
Code: Alles auswählen
File= open("....
Code: Alles auswählen
with blabla.open(filename, "r", encoding=coding) as infile: