Hi ich habe nochmal ne Frage
Ich möchte in meinem Programm mehrere Dateiene öffen die erste heitßt zb. parameter1.csv die darauffolgenden würden dann heißen:
parameter1.1.csv
parameter1.2.csv
...
wie schaffe ich es das das Programm automatisch nach eingabe von 1 nach den anderen Datein sucht und diese ebenfalls bearbeitet und unter einem neuem Namen ebenfalls nach dem Muster 1.1, 1.2, ... wieder abspeichert?
Servus Mark
Datein absuchen bzw öffnen
Sorry aber jedesmal mache ich irgendwie was falsch obs jetzt Rechschreibung oder Titel und Benutzername vertauschen ist.
Ganz klar ist mir die Abfolge nicht. "1", "1.1", "1.2", ... "1.9" und dann? "1.10" oder "2" oder "2.0"? Und bis wie weit soll gezählt werden?PenPen hat geschrieben:wie schaffe ich es das das Programm automatisch nach eingabe von 1 nach den anderen Datein sucht und diese ebenfalls bearbeitet und unter einem neuem Namen ebenfalls nach dem Muster 1.1, 1.2, ... wieder abspeichert?
Jan
Ich hab deine Entschuldigung mal als Änderungswunsch interpretiert und das zurückvertauscht... Ich weiß auch nicht ganz wie dein System genau sein soll, aber mit os.listdir bekommst du eine Liste aller Deitennamen eines Verzeichnisses. Die müsstest du dann nur noch systematisch abarbeiten und wieder neu speichern.
Oki
Hm 1.1 usw ist eventuell doch eher kompliziert
Denke es würde auch reichen wenn ich die datei irgendwas-1.csv nennen würde und dann hochzählen würde.
Das würde dann von 1 bis ca. 200 hochgezählt werden
Hm 1.1 usw ist eventuell doch eher kompliziert
Denke es würde auch reichen wenn ich die datei irgendwas-1.csv nennen würde und dann hochzählen würde.
Das würde dann von 1 bis ca. 200 hochgezählt werden
Ich habe mir eigentlich vorgestellt das ich irgendwas-1.csv eingebe und das das Programm dann so lange hcohzählt und die dateien bearbeitet bis die hochzählung zu ihrem Ende angekommen ist und damit die letzte Datei bearbeitet ist.
@Milan Danke für die Änderung
@Milan Danke für die Änderung
Hallo!
Du könntest das Modul glob verwenden.
import glob
dateiliste = glob.glob("/mein/pfad/irgendwas-*.csv")
Dann wären alle Dateien mit "irgendwas-" am Anfang und ".csv" am Ende in der Liste.
Mehr Kontrolle über die zu berücksichtigenden Dateien hättest Du so:Die if-Bedingung kannst Du so komplex wie nötig gestalten.
Nachteil der obigen beiden Lösungen: Die Dateien sind nicht in nummerischer Reihenfolge. Da wäre eine Zählschleife (eventuell mit Abbruchbedingung) vielleicht besser:
Jan
Möglichkeiten gibts viele. Auch das mit dem "1.1" etc. wäre machbar, wenn denn die Regeln klar sind. Bleiben wir mal bei der einfachen Zählung:PenPen hat geschrieben:Hm 1.1 usw ist eventuell doch eher kompliziert
Du könntest das Modul glob verwenden.
import glob
dateiliste = glob.glob("/mein/pfad/irgendwas-*.csv")
Dann wären alle Dateien mit "irgendwas-" am Anfang und ".csv" am Ende in der Liste.
Mehr Kontrolle über die zu berücksichtigenden Dateien hättest Du so:
Code: Alles auswählen
import os,re
for datei in os.listdir("/mein/pfad"):
if re.search("^irgendwas-[0-9]+.csv$",datei):
pass # Dateiaktionen
Nachteil der obigen beiden Lösungen: Die Dateien sind nicht in nummerischer Reihenfolge. Da wäre eine Zählschleife (eventuell mit Abbruchbedingung) vielleicht besser:
Code: Alles auswählen
for i in range(1,200):
try:
f = open("/mein/pfad/irgendwas-%d.csv"%(i))
# Dateiaktionen
f.close()
except IOError:
pass # Datei gibt's dann wohl nicht
Hallo nochmal
erstmal danke für die Lösungen, ich habe mich für die letzte entschieden. Allerdings habe ich jetzt wieder ein Problem.
Wenn ich das Programm jetzt ausführe gibt es nur die letzte Datei aus, die anderen bearbeitet es entweder nicht oder überschreibt sie.
Hier mal mein Code da ich keine Lösung finde oder den Wald vor lauter Bäumen nicht sehe.
erstmal danke für die Lösungen, ich habe mich für die letzte entschieden. Allerdings habe ich jetzt wieder ein Problem.
Wenn ich das Programm jetzt ausführe gibt es nur die letzte Datei aus, die anderen bearbeitet es entweder nicht oder überschreibt sie.
Hier mal mein Code da ich keine Lösung finde oder den Wald vor lauter Bäumen nicht sehe.
Code: Alles auswählen
Datei = raw_input() # Pfad der zu modiviezierenden Datei eingeben
print "\n"
print "Bitte neuen Dateinamen eingeben "
print ">>>"
neu = raw_input() #Benutzer soll den Pfad der neuen Datei angeben
i = 1
print i
for j in range(1,10):
try:
v = open(Datei + "-%d.csv" %(j))
# Dateiaktionen
import string
import csv
# Die naechsten 2 Blöcke ändern ' ' zu '_' und ';' zu ' ' und speichern dies.
transtable = string.maketrans(' ','_')
f = v #open(Datei, 'r')
text = f.read()
f.close()
text = text.translate(transtable)
f = open(neu, 'w')
f.write(text)
f.close()
v.close()
transtable = string.maketrans(';',' ')
e = open(neu, 'r')
text = e.read()
e.close()
text = text.translate(transtable)
e = open(neu, 'w+')
e.write(text)
e.close()
# letzter Block nimmt Untergliederung vor
def numworte(s):
list = string.split(s)
return len(list)# gibt Anzahl der Elemente in einer Liste zurück
inp = open(neu,"r+")
line = inp.readline()
for line in inp.readlines():
list = string.split(line)
i = 0
n = len(list)
if i == 0:
inp.write('- ')
inp.write(list[0])
inp.write('\n')
for i in range (1,n):
inp.write(' - ')
inp.write(list[i])
inp.write('\n')
inp.close()
except IOError:
pass # Datei gibt's dann wohl nicht
#Rückumwandlung der "_" in " "
transtable = string.maketrans('_',' ')
t = open(neu, 'r')
text = t.read()
t.close()
text = text.translate(transtable)
t = open(neu, 'w')
t.write(text)
t.close()
#Ausgabe der neuen Datei zu Kontrolle
x = open(neu, 'r')
print x.read()
x.close()
Hallo!
Kannst Du den Code nochmal in [code] [/code] einschließen, damit die Einrückungen erhalten bleiben (und vielleicht auf die Teile beschränken, die für die Fehlersuche wichtig/ausreichend sind)? BTW: Wenn Du registiert wärst, könntest Du Deinen Beitrag nachträglich entsprechend editierten
Jan
Kannst Du den Code nochmal in [code] [/code] einschließen, damit die Einrückungen erhalten bleiben (und vielleicht auf die Teile beschränken, die für die Fehlersuche wichtig/ausreichend sind)? BTW: Wenn Du registiert wärst, könntest Du Deinen Beitrag nachträglich entsprechend editierten
Jan
Hat sich erledigt, aber trotzdem Danke
zum Code wie ich ihn vorher gepostet habe ich weis das er zum Teil stumpfsinnig ist usw
Servus Markus
zum Code wie ich ihn vorher gepostet habe ich weis das er zum Teil stumpfsinnig ist usw
Servus Markus