Text Indexierung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
lapac
User
Beiträge: 5
Registriert: Dienstag 29. April 2014, 07:27

also irgendwie schreibt er die dateien nicht in index.json keine ahnung warum vlt kann mir ja jemand helfen?
edit: Also der schreibt zwar die Sachen in index.json aber der schreibt nicht alles da rein. Nicht die Textdateien vom Unterordner

Code: Alles auswählen

import sys
import os
import json

if (len(sys.argv) < 2) :
	print("Bitte Parameter eingeben!!!")
	sys.exit(1)
parameter=sys.argv[1]

mydic = {}

for dirs,root, files in os.walk(os.path.abspath(parameter)):
	for file in os.listdir(parameter):
		 pfad = os.path.join(parameter,file)
		 print(pfad)
		 if file.endswith(".txt"):
		  fobj = open(pfad,"r")
		  inhalt = fobj.read().split()
		  print(inhalt)
		  for wort in inhalt:
		   if not wort in mydic:
		  	 print("Nicht Vorhanden!")
		  	 mydic[wort] = [parameter+"/"+file]
		  else:
		   mydic[wort].append(parameter+"/"+file)
		  with open ("index.json", "w") as jsonindex:
		   jsonindex.write(json.dumps(mydic,sort_keys=True,indent=4))
Zuletzt geändert von lapac am Dienstag 20. Mai 2014, 15:32, insgesamt 4-mal geändert.
Benutzeravatar
ngulam
User
Beiträge: 35
Registriert: Freitag 18. Oktober 2013, 11:03

Ist ja wohl nicht der vollständige Code:
wo sind die import Anweisungen?

Warum wird "Bitte Parameter eingeben" ausgegeben, wenn die Meldung lauten müsste: "fehlender Parameter"?


Warum soll ein Parameter eingegeben werden, wenn nicht mit ihm gearbeitet wird?
งูหลาม
lapac
User
Beiträge: 5
Registriert: Dienstag 29. April 2014, 07:27

Ok hat sich erledigt habe den Fehler gefunden xD..
Sry für die Störung
BlackJack

@lapac: Warum schreibst Du das denn *in* der Schleife immer wieder raus? Und den 'w+'-Modus halte ich für problematisch, da kann Murks bei rauskommen wenn die Datei schon existieren sollte.
Benutzeravatar
ngulam
User
Beiträge: 35
Registriert: Freitag 18. Oktober 2013, 11:03

Code-Beispiel zweimal geändert :evil:
งูหลาม
BlackJack

@lapac: Die äussere Schleife über `os.walk()` macht irgendwie auch überhaupt keinen Sinn‽
lapac
User
Beiträge: 5
Registriert: Dienstag 29. April 2014, 07:27

Also irgendwie habe ich doch noch Probleme und zwar nimmt der nicht den Ordner den ich angebe und sein Unterordner und deren Textdateien sondern nur den Ordner und die Textdatei.
Bin echt am verzweifeln :S:S:S:S:S:S
BlackJack

@lapac: Siehe meine letzten beiden Beiträge. Du hast da teilweise sehr unsinnigen Programmablauf umgesetzt.

Edit: Teil das auf kleinere Teilprobleme auf und auf Funktionen, die man dann einzeln Testen kann ob sie das tun was sie sollen. Das ist einfacher als alles als einen grossen „Code-Klumpen” auf Modulebene zu schreiben.
Antworten