In eine textdatei Zeilen einfügen

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.
Cyberbroker
User
Beiträge: 16
Registriert: Dienstag 17. November 2009, 22:18

Hallo Community,

ich würde gerne in eine bestehende .txt Datei an eine ganz bestimmte Stelle ein paar zeilen einfügen.
Zudem sollen an verschiedenen stellen dieser .txt werte entweder per datei werte eingelesen werden, oder per prompt angegeben werden.

Mit ausnahme dieser Werte und des einzufügenden Bereichs, ist die .txt Datei jedoch immer gleich (ist als eine settings.txt datei gedacht für ein anderes programm)

Bitte präsentiert mir jetzt nicht eine komplett fertige Lösung die mich nur dazu bringt es einfach zu kopiern. Ich würde es gerne von grund auf verstehn. Werde auch in Zukunft mit Python arbeiten, und umso mehr ich kann umso besser.

Hier mal mein erste bescheidener Ansatz:

Also erstes muss ich den einzufügenden Teil aus einer Datei laden um sie dann in eine neue Datei zu schreiben:

Code: Alles auswählen

fobj = open("hexan.txt", 'r')
        
for line in fobj:
    print (line)                # zum ueberprüfen ob auch die korrekte Datei geladen wurde


adjlist = [fobj]                  #umwandeln der Inhalte der Datei in eine liste (korrekt?)


out = open( 'adjlist.txt' , 'a' )  # definieren der Ausgabedatei
out.writelines ( a )               # <--- Funktioniert nicht: TypeError: must be str, not _io.TextIOWrapper
Ihr seht, ich steh wohl ziemlich weit am Anfang. Und das stimmt auch. Hab mit Python seit knapp 15 Tagen zu tun, bzw. ~30 Stunden.

Ich bedanke mich im vorraus und wünsche n schönes WE.

Gruß

René

Edit:

Achja, zu meiner Überlegung:
Ich hab emir überlegt diese bestehende settingsdatei in kleiner Teile zu zerschneiden, sodass ich zwischen Konstanten und Variablen trenne. Ums zu verbildlichen:

TEXTBLOCK laden
Variable (entweder per prompt, oder aus andere datei)
TEXTBLOCK
Variable (")
usw....
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Irgend wie fehlt eine Grammatik für die Textdatei bzw. deren Verdeutlichung anhand eines Beispiels! Ohne die kann man ja schwer einen Tipp geben, wie man da prinzipiel vorgehen könnte.

Ich würde mal den imho sinnvollsten Tipp geben: Benutze nicht irgend ein eigenes, obskures Dateiformat, sondern nutze ein Standardformat a la JSON, INI, YAML, XML, CSV o.ä. Dafür gibt es fertige Module zum Parsen, die Du nutzen kannst; die meisten sogar in der Standardlib.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Cyberbroker
User
Beiträge: 16
Registriert: Dienstag 17. November 2009, 22:18

Hyperion hat geschrieben:Irgend wie fehlt eine Grammatik für die Textdatei bzw. deren Verdeutlichung anhand eines Beispiels! Ohne die kann man ja schwer einen Tipp geben, wie man da prinzipiel vorgehen könnte.

Ich würde mal den imho sinnvollsten Tipp geben: Benutze nicht irgend ein eigenes, obskures Dateiformat, sondern nutze ein Standardformat a la JSON, INI, YAML, XML, CSV o.ä. Dafür gibt es fertige Module zum Parsen, die Du nutzen kannst; die meisten sogar in der Standardlib.

Erstmal danke für deine Antwort.

Die Datei wird in etwa so aufgebaut sein:

Code: Alles auswählen

Header-Infos #Für jeden Durchlauf gleich
Version #Für jeden Durchlauf gleich
Weitere konstante Infos #Für jeden Durchlauf gleich

Temp= Variable # Per prompt oder per Datei zu ändern
Druck= Variable # Per prompt oder per Datei zu ändern

#1
#2
#3
#n In diesem Bereich werden 1 bis ~15 Zeilen einzufügen sein.

END

#a
#b
#c
#z Genau wie oben, aber nicht immer notwendig.

END

Modul= Modul 1, 2 oder 3  # Per prompt oder per Datei zu ändern

Weitere Konstante Werte

Weiter Variablen:
a=
b=
c=

Ende
Hoffe ich konnte es klar schildern. Die Datei oben muss so aussehen. Ist als Settings.txt für ein anderes Programm gedacht.

Gruß,

René
Zuletzt geändert von Cyberbroker am Samstag 21. Januar 2012, 18:50, insgesamt 1-mal geändert.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Nö. Sieht ziemlich konfus aus!

Was ist denn mit meinem Ratschlag?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Cyberbroker
User
Beiträge: 16
Registriert: Dienstag 17. November 2009, 22:18

Leider versteh ich von deinem Tipp folgende Worte nicht:
JSON, INI, YAML, XML, CSV, Parsen

Ok, noch ein Versuch:

Code: Alles auswählen

Settings.txt:

a: Variable
b: Variable
c: Konstante

d: Variable über mehrer Zeilen

e: Variable über mehre Zeilen

f: Konstante
g: Variable
Ich muss also diese Settings.txt so wie in dem oben angegebenen "format" erzeugen und als Settings.txt speichern

Gruß
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Cyberbroker hat geschrieben:Leider versteh ich von deinem Tipp folgende Worte nicht:
JSON, INI, YAML, XML, CSV, Parsen
Also mal langsam:
Hyperion hat geschrieben: Benutze nicht irgend ein eigenes, obskures Dateiformat
Das ist klar? Du sollst also kein eigenes, selbst überlegtes Dateiformat verwenden.
Hyperion hat geschrieben: sondern nutze ein Standardformat a la JSON, INI, YAML, XML, CSV o.ä.
Stattdessen sollst Du ein Standardformat nutzen. "Standard" ist hoffentlich klar? Man könnte auch sagen ein weit verbreitetes Format, ein viel genutztes usw.
"a la" ist aus dem Französischem entlehnt und bedeutet "in der Art wie". Danach zähle ich dann eben solche Formate auf - wenn Du JSON oder YAML noch nicht gehört hast, hättest Du durch einfaches googlen herausfinden können, um was es sich handelt; aber XML setze ich doch mal als bekannt voraus. Insofern kapiere ich meinerseits nicht, wieso Du den Sinn meines Vorschlags nicht erfassen konntest?

Wenn Du nach "Parser" suchst, dann bekommst Du als erstes den wikipedia-Eintrag dazu. Ich denke auch der wird ziemlich gut darstellen, worum es sich handelt.

"Parsen" ist letztlich genau das, was Du hier vor hast. Du liest eine Textdatei ein, bildest deren Struktur auf interne Datenstrukturen ab und kannst diese dann weiterverarbeiten; also etwa verändern, ergänzen usw.

Und nun noch einmal meine Frage: Wieso nimmst Du nicht einfach ein Format, für das bereits Parser existieren, so dass Du viel weniger Arbeit hast, als bei Deinem eigenen Format?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Cyberbroker
User
Beiträge: 16
Registriert: Dienstag 17. November 2009, 22:18

Wie gesagt, ~20 bis 30 Stunden erfahrung mit Python.

Ansonsten habe ich keinerlei Programmiererfahrungen^^

Ich wollte mit dem Spruch nur zum Ausdruck bringen, dass ich noch nie was davon gehört habe.
Türlich hätte ich alles googln können, und mir durchlesen was es bedeutet. Nur ändert es ja nichts daran das ich bisher noch nie gehört habe. Genug OT.

Das Format (sowhohl struktur der Datei, als auch das Dateiformat) muss eine .txt Datei mit obiger Struktur sein.
Deshalb kann ich (noch) nichts mit deinem Tipp anfangen.

Mir wär schon geholfen wenn du mir sagen könntest, wie ich eine liste als .txt speichern kann.

Code: Alles auswählen

adjlist = [fobj]                  #umwandeln der Inhalte der Datei in eine liste (korrekt?)


out = open( 'adjlist.txt' , 'a' )  # definieren der Ausgabedatei
out.writelines ( a )               # <--- Funktioniert nicht: 
#TypeError: must be str, not _io.TextIOWrapper
Weiterhin danke,

Gruß

René
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Cyberbroker hat geschrieben:Wie gesagt, ~20 bis 30 Stunden erfahrung mit Python.

Ansonsten habe ich keinerlei Programmiererfahrungen^^

Ich wollte mit dem Spruch nur zum Ausdruck bringen, dass ich noch nie was davon gehört habe.
Türlich hätte ich alles googln können, und mir durchlesen was es bedeutet. Nur ändert es ja nichts daran das ich bisher noch nie gehört habe. Genug OT.
Diese Formate haben ja nichts spezielles mit einer Programmiersprache zu tun ;-) Und Eigeninitiative und Recherche gehören nun einmal zum täglich Brot eines Entwicklers.
Cyberbroker hat geschrieben: Das Format (sowhohl struktur der Datei, als auch das Dateiformat) muss eine .txt Datei mit obiger Struktur sein.
Na das ist doch mal eine Aussage. Wenn das Format zwingend vorgegeben ist, dann kannst Du logischerweise kein anderes benutzen. Damit wäre das geklärt.

Nun frage ich mich aber, ob Du uns mal das Programm nennen könntest, welches diese sonderbare Format verwendet und uns zudem mal eine Beispieldatei posten könntest. Evtl. handelt es sich dabei ja doch um eine INI-Datei, die man mittels eingebauten `ConfigParser`-Modul bearbeiten könnte.

Erst einmal sollten wir hier Schritt für Schritt vorgehen, damit wir kein XY-Problem lösen.

Um ggf. einen Schritt zu überspringen: Musst Du diese Datei einlesen, daraus ggf. noch Informationen herausziehen und abhängig davon eine neue Version dieser Datei generieren? Oder wäre es denkbar eine fixe Vorlage davon zu erstellen, die einfach mit Werten an bestimmten Stellen gefüllt wird?

Also zwei Nachfragen, daher bitte ich um Antworten auf beide ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Cyberbroker
User
Beiträge: 16
Registriert: Dienstag 17. November 2009, 22:18

Hyperion hat geschrieben: Nun frage ich mich aber, ob Du uns mal das Programm nennen könntest, welches diese sonderbare Format verwendet und uns zudem mal eine Beispieldatei posten könntest. Evtl. handelt es sich dabei ja doch um eine INI-Datei, die man mittels eingebauten `ConfigParser`-Modul bearbeiten könnte.
Es handelt sich um RMG - Rapid mechanism Generator.
Ziel ist es, das ich ein python Skript habe, das mir ausgehend von einer Datei (Chemikalie.smi) mehrere Settings.txt (für jedes Molekül das in Chemikalie.smi steckt) generiert, die ich dann nur noch mit RMG auszuführen habe.

Hyperion hat geschrieben: Erst einmal sollten wir hier Schritt für Schritt vorgehen, damit wir kein XY-Problem lösen.

Um ggf. einen Schritt zu überspringen: Musst Du diese Datei einlesen, daraus ggf. noch Informationen herausziehen und abhängig davon eine neue Version dieser Datei generieren?
Nein, es besteht kein abhängigkeit in diese Richtung.
Hyperion hat geschrieben: Oder wäre es denkbar eine fixe Vorlage davon zu erstellen, die einfach mit Werten an bestimmten Stellen gefüllt wird?
Ja, die Fixe Vorlage muss nur an ein paar wenigen stellen mit Variablen "gefüttert" werden. Teilweise können die für jedes Molekül unterschiedlich sein. Manchmal können aber auch für alle Moleküle die selben Variablen genutzt werden.
Hyperion hat geschrieben: Also zwei Nachfragen, daher bitte ich um Antworten auf beide ;-)
Ich hoffe ich hab alle beantwortet.

Und wie gehabt: Danke für deine Bemühungen.

Gruß

René

Beispil Datei:

Code: Alles auswählen

//tracks the decomposition of pure ethane, without any pressure-dependent reactions.

Database: RMG_database

PrimaryThermoLibrary:
Name: RMG-minimal
Location: primaryThermoLibrary
END

PrimaryTransportLibrary:
Name: GRIMech3.0
Location: GRI-Mech3.0
END

ReadRestart: no
WriteRestart: no

TemperatureModel: Constant (K) 1350
PressureModel: Constant (atm) 1 

InitialStatus:

C2H6 (mol/cm3) 1.0 
1 C 0 {2,S}
2 C 0 {1,S}

END

InertGas:
N2 (mol/cm3) 0.0 
Ar (mol/cm3) 0.0 
END

SpectroscopicDataEstimator: off
PressureDependence: off

FinishController:
(1) Goal Conversion: C2H6 0.9
(2) Error Tolerance: 0.1

DynamicSimulator: DASSL
Conversions: AUTO
Atol: 1e-18
Rtol: 1e-8

PrimaryKineticLibrary:
END

ReactionLibrary:
END

SeedMechanism:
END

ChemkinUnits:
A: moles
Ea: kcal/mol
PS: Nicht das du denkst ich bin unhöflich und ignoriere deinen kommenden Post: Ich bin jetzt bis morgn offline.

Gruß und schönen Samstag abend noch^^
BlackJack

@Cyberbroker: Du könntest also eine Vorlage schreiben mit Platzhaltern für die Variablen? Dann wäre das einfachste wohl mit `string.Template` aus der Standardbibliothek zu arbeiten.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

BlackJack hat geschrieben:@Cyberbroker: Du könntest also eine Vorlage schreiben mit Platzhaltern für die Variablen? Dann wäre das einfachste wohl mit `string.Template` aus der Standardbibliothek zu arbeiten.
Ich hatte jetzt an jinja2 gedacht - mag natürlich nen Overkill sein, aber ich finde diese Templatesprache toll :-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Cyberbroker
User
Beiträge: 16
Registriert: Dienstag 17. November 2009, 22:18

BlackJack hat geschrieben:@Cyberbroker: Du könntest also eine Vorlage schreiben mit Platzhaltern für die Variablen? Dann wäre das einfachste wohl mit `string.Template` aus der Standardbibliothek zu arbeiten.

Danke für die Antwort. Werde mich da mal string.template und jinja2 einlesen und hoffentlich bis heut abend was fertig haben.



Gruß

René
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Viel Erfolg. Ich denke mit einer Template-Engine bist Du auf dem richtigen Weg.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Cyberbroker
User
Beiträge: 16
Registriert: Dienstag 17. November 2009, 22:18

So, hab mich rangesetzt und was geschrieben. Dabei hab ich jetzt gar kein template benutzt. Bzw. nocht nicht. Hab die Variablen als prompt eingebaut.

Denn im moment ist erstmal wichtig, das das Skript läuft. Hier erstmal der Teil des Skripts:

Code: Alles auswählen

#header_in           = open('header.txt')
#temp_pres_in        = open('temp_pres.txt')
#footer_in           = open('footer.txt')  

######Laden der adjlist und Ausgabe Datei######

adjlist_in          = open ('Hexan.txt','r')
conditions_out      = open ('Conditions.txt','w')


######Beschreiben des ersten Zeilen, ohne weitere Variablen######

conditions_out.write("//Platz fuer Kommentare, noetig?\n\
\n\
Database: RMG_database\n\
\n\
PrimaryThermoLibrary:\n\
Name: RMG-minimal\n\
Location: primaryThermoLibrary\n\
END\n\
\n\
PrimaryTransportLibrary:\n\
Name: GRIMech3.0\n\
Location: GRI-Mech3.0\n\
END\n\
\n\
ReadRestart: no\n\
WriteRestart: no\n\
\n")

######Eingabe von Druck und Temperatur######

Temp=input('Temperatur Konstant: j/n')
Pres=input('Druck Konstant: j/n')
if Temp=="j":
    Temp="Constant"
else:
        Temp=""
if Pres=="j":
    Pres="Constant"
else:
        Pres=""

        
Temp1=input('Temperatr in Kelvin')
Pres1=input('Druck in atm')

conditions_out.write('TemperatureModel: '+Temp+ " (K) "+Temp1 +"\n")
conditions_out.write('PressureModel: '+Pres+ " (atm) "+Pres1 +"\n\n")
conditions_out.write('InitialStatus:\n\n')


######Einfügen der adjlist######

mol=str(5)                                      #Muss noch automatisch berechnet werden
conditions_out.write('Dateiname (mol/cm3)' +mol+'\n')
for line in adjlist_in:                         # adjlist einfügen
    
    print (line.rstrip())
    conditions_out.write(line)
   
    
adjlist_in.close()

######Einfügen des Sauerstoffs######

oxygen=str(5)                                   # Muss noch automatisch stöchiometrisch angepasst werden
conditions_out.write("\nO2 (mol/cm3)" + oxygen)
conditions_out.write("\n1 O 1 {2,S}\n2 O 1 {1,S}")

######Der Rest der Datei ohne weitere Variablen######

conditions_out.write("\n\nDynamicSimulator: DASSL\n\
Conversions: AUTO\n\
Atol: 1e-18\n\
Rtol: 1e-8\n\
\n\
PrimaryKineticLibrary:\n\
ENDn\n\
\n\
ReactionLibrary:\n\
END\n\
\n\
SeedMechanism:\n\
END\n\
\n\
ChemkinUnits:\n\
A: moles\n\
Ea: kcal/mol")
                     
conditions_out.close()

    
    


Mit Sicherheit nicht schön, und auch nicht grad kurz. Aber wichtig ist, das es erstmal funktioniert, und so simpel wie möglich ist. Ziel ist es, das deises Skript nur noch in einem entsprechenden Ordner ausgeführt werden muss und alle darin befindlichen .txt Datein bearbeitet und sie dann in Subfolder speichert.

Was ich also in kommenden Stunden probieren werde ist:

Code: Alles auswählen

adjlist_in          = open ('Hexan.txt','r')
Das hier als schleife zu gestalten, die alle .txt im Ordner öffnet; Tipps? Die schleife ist mir klar, aber wie kann ich python anweisen alle .txt zu öffnen

und:

Code: Alles auswählen

conditions_out      = open ('Conditions.txt','w')
Die Datein dann nicht im gleichen Ordner, sondern in einem unterordner speichert, der den Namen der Datei trägt. Hier weiss ich weder wie ich einen Ordner erstelle, noch das dieser den Namen der jeweils geladenen Datei hat. Werd mal schaun, für Tipps bin ich wie immer dankbar
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Du solltest dir das os-Modul anschauen, weil es mit os.walk eine Methode anbietet, die alle Dateinamen und Unterordner eines Ordners zurückliefert, sowie grundlegende Methoden anbietet um mit Pfaden und Dateinamen zu arbeiten (und Ordner betriebssystemunabhängig zu erstellen).
BlackJack

@Cyberbroker: Das `glob`-Modul wäre ein einfacher Weg die Namen aller ``.txt``-Dateien in einem Verzeichnis zu ermitteln. Im `os.path`-Modul finden sich nützliche Funktionen um Pfade und Dateinamen in ihre Komponenten zu zerlegen und Pfade zusammen zu setzen.

Es mag wichtig sein, dass das erst einmal läuft, aber wenn man nicht übersichtlich programmiert, dann rächt sich das sehr oft, wenn man ein Skript warten und überarbeiten muss. Deshalb solltest Du wirklich die Daten und die Programmlogik trennen und mit einem Template arbeiten. Das kann ruhig erst einmal mit im Quelltext stehen, aber eben nicht abwechselnd Quelltext und Daten, so dass man nicht wirklich auf einen Blick erkennen kann wie das Ergebnis aussehen wird.

Als nächstes solltest Du den Quelltext sinnvoll in Funktionen aufteilen, statt alles monolithisch auf Modulebene zu schreiben. Zum Beispiel eine Funktion, die eine Datei verarbeitet und die Du dann für jede ``*.txt``-Datei aufrufen kannst.

Dateien sollte man mit der ``with``-Anweisung öffnen. Dann ist sicher gestellt, dass sie auch auf jeden Fall geschlossen werden.

Python kennt literale, mehrzeilige Zeichenketten. Damit ist es nicht nötig ``\`` zum fortsetzen von Zeilen zu verwenden und '\n' an die Zeilenenden von diesen mehrzeiligen Literalen zu setzen.

Namen sollte man nicht abkürzen, solange es nicht allgemein bekannte Abkürzungen sind. `Temp` könnte zum Beispiel auch für `temporary` stehen, statt für `temperature`.
Cyberbroker
User
Beiträge: 16
Registriert: Dienstag 17. November 2009, 22:18

Danke Blackjack,

werde mir die Tipps aufjedenfall zu herzen nehmen. Das Skript wird sicherlich noch mal general überholt. Aber vorerst muss ich Ende dieser Woche zeigen was es kann^^.

Es kam gestern noch unerwartet noch eine Anforderung dazu.
Es sollen mehrere Temperaturen wie folgt angebeben werden:

Code: Alles auswählen

temperature_min = int(input ('Temperatur_min in Kelvin:') )  
temperature_max = int(input ('Temperatur_max in Kelvin:') )
temperature_inkrement = int(input ('Temperatur_inkrement:') )
a= int(((temp_max - temp_min)/temp_ink)+1)
i=0
if temperature_min == temperature_max:
    temperatur_liste = [temperature_min]

elif temperature_min < temperature_max:
    temperatur_liste = [temperature_min]

    while a != i:

        temp_i = int(temperature_min+temperature_inkrement)

        temperature_liste.append(temp_i)

        i += 1


So müsste es funktionieren, ausser das temp_i nich durchgehend nummeriert wird. wie kann ich das machn?
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Cyberbroker hat geschrieben:So müsste es funktionieren, ausser das temp_i nich durchgehend nummeriert wird. wie kann ich das machn?
Statt "müsste" solltest du das mal ausprobieren. Du verwendest Bezeichner (temp_max, temp_min) ohne sie vorher deklariert zu haben und versuchst an eine nicht existente Liste (temperature_liste) etwas anzuhängen. Das kann nicht gehen!

Zudem ist der Mix aus deutschen und englischen Bezeichnungen gefährlich. Willst du wirklich temperatur_liste und temperature_liste haben?

Du fügst übrigens mehrfach den gleichen Wert zur Liste hinzu. Die Schleife ist ja auch ein wenig umständlich gestaltet, so dass sich solche Fehler einschleichen. a ist definitiv überflüssig.

Code: Alles auswählen

temperatures = []
if temperature_min <= temperature_max:
    current_temperature = temperature_min
    while current_temperature < temperature_max:
        temperatures.append(current_temperature)
        current_temperature += temperature_increment
    temperatures.append(temperature_max)
else:
    # Warnhinweis
    pass
print(temperatures)
Cyberbroker
User
Beiträge: 16
Registriert: Dienstag 17. November 2009, 22:18

vielen dank.

ausprobieren wollt ichs erst gar nicht weil mir das mit temp_i klar war, das es nicht funktionieren wird. Die fehlerhafte bezeichnugn "temp_min" etc hab ich vergessen umzu bennnen.
Versuch mich an eure tipps zu halten und deshalb geeignetere Variablen als "temp" zu finden.

Danke für deine Hilfe.

Gruß,

René
Cyberbroker
User
Beiträge: 16
Registriert: Dienstag 17. November 2009, 22:18

Hey,

hab noch eine Frage zum abspeichern von Dateien.
Habe vor die Datei in einem Subfolder zu speichern, dieser Subfolder muss zunächst erstellt werden.

Code: Alles auswählen

import os

a = os.getcwd() #

name="Hexan" # wobei der name im eigentlichen Skript dynamisch generiert wird

os.mkdir(a+"\\"+name)
Das erstellen des Ordners klappt.
Hab mir was zum modul os durchgelesen, allerdings nichts dazu gefunden, wie ich Dateien in einem speziellen Ordner abspeichern kann.

Bisher speicher ich einfach nur mittels:

Code: Alles auswählen

conditions_out      = open ('Condition.txt','w')
gruß

René
Antworten