Python / Bash

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Valdez
Beiträge: 551
Registriert: 08.05.2008 14:15:23
Wohnort: Tirol
Kontaktdaten:

Python / Bash

Beitrag von Valdez » 24.02.2012 21:19:28

ich möcht ein python programm welches mich abfrägt welches datum ist (vorerst nur den tag in zahlen) und diese dann mit dem bash befehl mkdir anlegt ...
z.b. bei der eingabe von 23 soll ein ordner "backup23-02" angelegt werden

dazu habe ich folgendes versucht:
#!/usr/bin/python

Code: Alles auswählen

# Eingabe
print ("Bitte Tag in Zahl eingeben:")

z = input()
zahl = int(z)


if zahl > 31:
        import os
        os.system('mkdir ((eingegebene Zahl))')
        os.system('/bin/bash')

else:
hier ist die frage wie ich nach dem kommando mkdir die eingegeben zahl angeben kann ? am liebsten mit noch zusätzlichem text dazu

danke lg
<<its like 10.000 spoons when all you need is a knife>>

Benutzeravatar
Mr_Snede
Beiträge: 2323
Registriert: 08.07.2003 13:48:49
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Ruhrpott

Re: Python / Bash

Beitrag von Mr_Snede » 24.02.2012 22:40:24

Hi valdez,
warum nutzt du nicht Python um auch den Ordner zu erstellen?
Python Doku: os.mkdir

Überlege mal, wieviele Tage ein Monat haben kann, also wie groß die Zahl maximal ist, die der Benutzer eingibt.
Wie oft wird dann in den "if - Block" gesprungen?

cu Mr_Snede
Software Finder - Software in Kategorien Debian ohne Ballast - Tipps für ein schlankes Debian

PapaToo
Beiträge: 72
Registriert: 08.03.2009 19:44:44

Re: Python / Bash

Beitrag von PapaToo » 24.02.2012 22:47:38

Code: Alles auswählen

#!/usr/bin/python
import os

mypath = os.getcwd()
tag = str(input("Tag eingeben: "))
mypath = mypath + '/' + tag
myvars = {'mypath':mypath}
os.system('mkdir %(mypath)s' % myvars)
ob das jetzt schön ist - keine Ahnung...

Besten Gruß

Benutzeravatar
Valdez
Beiträge: 551
Registriert: 08.05.2008 14:15:23
Wohnort: Tirol
Kontaktdaten:

Re: Python / Bash

Beitrag von Valdez » 24.02.2012 22:52:17

danke für die antwort ...

also da ein monat maximal 31 tage haben kann die zahl auch nur höchstens 31 sein.

du meinst ich muss dann für jede möglichkeit einmal elif machen ?

ich werde mal nachlesen wie ich mit python ordner erstellen kann ... danke für den tip =)

lg


danke @ papatoo, funktioniert mal prima =)

noch eine frage ergibt sich ... wie kann ich dann in den ordner "mypath" mit rsync was reinschreiben ?

Code: Alles auswählen

?
os.system('rsync file %(mypath)s')
os.system('/bin/bash')
danke again
<<its like 10.000 spoons when all you need is a knife>>

Benutzeravatar
Valdez
Beiträge: 551
Registriert: 08.05.2008 14:15:23
Wohnort: Tirol
Kontaktdaten:

Re: Python / Bash

Beitrag von Valdez » 24.02.2012 23:24:12

ich habs

Code: Alles auswählen

#!/usr/bin/python
import os

mypath = os.getcwd()
tag = str(input("Tag eingeben: "))
mypath = mypath + '/' + tag
myvars = {'mypath':mypath}
os.system('mkdir %(mypath)s' % myvars)

print("pfad:", mypath)
print("eingegebener tag:", tag)


import os
os.system('rsync testfile %(mypath)s' % myvars)
os.system('/bin/bash')
~                                                                                                                                                                       
~                                

danke sehr =)
<<its like 10.000 spoons when all you need is a knife>>

Benutzeravatar
Mr_Snede
Beiträge: 2323
Registriert: 08.07.2003 13:48:49
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Ruhrpott

Re: Python / Bash

Beitrag von Mr_Snede » 25.02.2012 10:10:24

Valdez hat geschrieben: [...] also da ein monat maximal 31 tage haben kann die zahl auch nur höchstens 31 sein.[...]
vergleiche mal diese Aussage mit:
Valdez hat geschrieben:

Code: Alles auswählen

if zahl > 31:
Welchen Wert muss eine Zahl haben, damit diese Aussage zutrifft?
Welchen Wert muss eine Zahl haben, damit diese Aussage nicht zutrifft?
Software Finder - Software in Kategorien Debian ohne Ballast - Tipps für ein schlankes Debian

Benutzeravatar
Valdez
Beiträge: 551
Registriert: 08.05.2008 14:15:23
Wohnort: Tirol
Kontaktdaten:

Re: Python / Bash

Beitrag von Valdez » 25.02.2012 14:33:03

du meinst

Code: Alles auswählen

if zahl < 31:
?

bei

Code: Alles auswählen

if zahl > 31:
wenn die zahl größer als 31 ist sollte eine art fehlermeldung kommen

oder ich habe nicht verstanden was genau du meinst.
Welchen Wert muss eine Zahl haben, damit diese Aussage zutrifft?
Welchen Wert muss eine Zahl haben, damit diese Aussage nicht zutrifft?
bei dem "if zahl > 31:" muss die zahl den wert 31 oder drüber
oder die zahl hat den wert 31 oder drunter und die aussage trifft nicht zu ... ?

ps bin schond dabei mich nach python bücher umzusehen
<<its like 10.000 spoons when all you need is a knife>>

Benutzeravatar
Mr_Snede
Beiträge: 2323
Registriert: 08.07.2003 13:48:49
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Ruhrpott

Re: Python / Bash

Beitrag von Mr_Snede » 26.02.2012 12:16:15

Valdez hat geschrieben: bei

Code: Alles auswählen

if zahl > 31:
wenn die zahl größer als 31 ist sollte eine art fehlermeldung kommen
Die Aussage lautet in natürlicher Sprache:

Code: Alles auswählen

Wenn zahl GRÖßER als 31 ist: Führe den eingerückten Code(hier bei dir: Ordner erstellen) aus.

Code: Alles auswählen

>>> zahl = 11
>>> if zahl > 31:
...     print "Ordner wird erstellt"
...
>>>
>>> zahl = 32
>>> if zahl > 31:
...     print "Ordner wird erstellt"
...
Ordner wird erstellt
Ich wollte dir das > unter die "Nase reiben"
Valdez hat geschrieben:ps bin schond dabei mich nach python bücher umzusehen
Bitte nicht das Gallieleo Python Openbook -> Eine Suche im http://www.python-forum.de gibt weitere Hinweise

Starte einfach mit dem offiziellen Python 2.7 Tutorial
Oder als deutsche Übersetzung allerdings nur für Python 3: http://tutorial.pocoo.org/

... have al lot of Fun - Mr_Snede
Software Finder - Software in Kategorien Debian ohne Ballast - Tipps für ein schlankes Debian

Antworten