Hallo, Gast |
Du musst dich registrieren bevor du auf unserer Seite Beiträge schreiben kannst.
|
Foren-Statistiken |
» Mitglieder: 1
» Neuestes Mitglied: Joopi
» Foren-Themen: 513
» Foren-Beiträge: 726
Komplettstatistiken
|
Benutzer Online |
Momentan sind 6 Benutzer online » 0 Mitglieder » 3 Gäste AhrefsBot, Crawl, bot
|
Aktive Themen |
Friday - 23:00 CDT: Not a...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
Heute, 07:55
» Antworten: 0
» Ansichten: 2
|
Friday - 13:00 CDT: Not a...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
Gestern, 10:03
» Antworten: 0
» Ansichten: 2
|
Thursday - 22:00 CDT: Not...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
Gestern, 06:46
» Antworten: 0
» Ansichten: 4
|
Thursday - 13:00 CDT: Not...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
17-04-2025, 09:43
» Antworten: 0
» Ansichten: 4
|
Thursday - 03:00 CDT: Not...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
17-04-2025, 12:07
» Antworten: 0
» Ansichten: 4
|
Wednesday - 18:00 CDT: No...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
17-04-2025, 02:52
» Antworten: 0
» Ansichten: 7
|
Wednesday - 06:00 CDT: No...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
16-04-2025, 02:28
» Antworten: 0
» Ansichten: 12
|
Tuesday - 21:00 CDT: Not ...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
16-04-2025, 05:18
» Antworten: 0
» Ansichten: 11
|
Tuesday - 14:00 CDT: Not ...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
15-04-2025, 10:38
» Antworten: 0
» Ansichten: 11
|
Tuesday - 00:00 CDT: Not ...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
15-04-2025, 08:42
» Antworten: 0
» Ansichten: 16
|
|
|
Andere Bildformate nach jpg konvertieren |
Geschrieben von: Joopi - 23-01-2023, 04:43 - Forum: Programmieren
- Keine Antworten
|
 |
Grundsätzlich arbeite ich mit Bildern im jpeg-Format. Das betrifft war nicht die raw-Dateien aus der Fotografie, aber eben alle anderen Bilder. Sollte mir andere Bildformate vorliegen, so konvertiere ich diese in jpeg-Format.
Mit dem Tool convert in der Konsole ist das relativ einfach. In Python aber nicht. Hier muss bedacht werden, dass eine echte Konvertiertung nicht stattfindet, sondern ein neues Abspeichern. Dabei treten Probleme auf, die es unter convert so nicht gibt.
So ist z.B. zu beachten, dass png-Bilder einen transparenten Hintergrund haben können, jpeg-Bilder allerdings nicht. Daher ist der Alphakanal eines png-Bildes zu löschen. Das geht mit der Konvertierung von RGBA nach RGB. Ansonsten würde sich ein Bilder neu unter dem jpeg-Format nicht speichern lassen, wenn es in einem Pythonskript erfolgen soll.
Folgender Codeschnipsel läuft im Moment bei mir reibungslos (die Ursprungsdatei wird gelöscht!).
Code: import os
import pathlib
from PIL import Image
for bildordner in pathlib.Path(rename_ordner).iterdir():
if bildordner.is_dir():
os.chdir(bildordner)
for bilddatei in pathlib.Path(os.getcwd()).iterdir():
if bilddatei.is_file():
filename, file_extension = os.path.splitext(bilddatei)
ext = file_extension
if ext != ".jpg":
# print(bilddatei)
# print(ext)
# print(filename)
imgfile = Image.open(rf"{bilddatei}")
imgfile = imgfile.convert("RGB")
imgfile.save(rf"{filename}{extneu}")
os.remove(bilddatei)
os.chdir("..")
|
|
|
Korrupte Bilddateien erkennen und löschen |
Geschrieben von: Joopi - 23-01-2023, 04:01 - Forum: Programmieren
- Keine Antworten
|
 |
Ich durchforste immer wieder meine Bilder (Fotos), ob ggfs. korrupte Dateien dabei sind. Wenn diese Dateien schon kaputt sind, bemühe ich mich auch nicht mehr, diese zu prüfen und ggfs. aufwendig zu reparieren. Mit dem folgenden Codeschnipsel werden solche Dateien erkannt und gelöscht.
Code: import os
import pathlib
from PIL import Image
for bildordner in pathlib.Path(rename_ordner).iterdir():
if bildordner.is_dir():
os.chdir(bildordner)
for bilddatei in pathlib.Path(os.getcwd()).iterdir():
if bilddatei.is_file():
try:
imgfile = Image.open(bilddatei)
imgfile.verify()
except (IOError, SyntaxError) as e:
print(bilddatei)
os.remove(bilddatei)
os.chdir("..")
|
|
|
Unerwünschte Endung in Ordnernamen entfernen |
Geschrieben von: Joopi - 22-01-2023, 08:56 - Forum: Programmieren
- Keine Antworten
|
 |
Dann und wann schleichen sich bei der Arbeit mit vielen Bildern in vielen Ordner leider Ordernamen ein, die nicht erwünscht sind. Diese sollen entfernt werden. Die unerwünschten Endungen stehen dabei in einer Liste, die dann je Ordner abzuarbeiten ist.
Code: trash_endung = [".jpg", "_001.jpg", "_002.jpg", "(1).jpg", "(1).jpeg", "_1_.jpg", "_2_.jpg", "_1.jpg", ".jpeg", "yenc", "yEnc", ".par2", ".zip", ".rar"]
for bildordner in pathlib.Path(rename_ordner).iterdir():
if bildordner.is_dir():
basename = os.path.basename(bildordner)
for endung in trash_endung:
basename = basename.replace(endung, "")
Eine andere Möglichkeit wäre, die str.endswith() Methode zu verwenden, um zu überprüfen, ob der Name des Ordners mit einer unerwünschten Endung endet, und dann die entsprechende Endung zu entfernen.
Code: trash_endung = [".jpg", "_001.jpg", "_002.jpg", "(1).jpg", "(1).jpeg", "_1_.jpg", "_2_.jpg", "_1.jpg", ".jpeg", "yenc", "yEnc", ".par2", ".zip", ".rar"]
for bildordner in pathlib.Path(rename_ordner).iterdir():
if bildordner.is_dir():
basename = os.path.basename(bildordner)
for endung in trash_endung:
print(endung)
if basename.endswith(endung):
basename1 = basename[:-len(endung)]
os.rename(f"{rename_ordner}/{basename}", f"{rename_ordner}/{basename1}")
break
|
|
|
Die Bestandteile von Ordner und Datei |
Geschrieben von: Joopi - 22-01-2023, 07:49 - Forum: Programmieren
- Keine Antworten
|
 |
Dann und wann ist es wichtig, dass nur der Dateiname oder nur die Extension einer Datei zur Verfügung steht. Dazu dienen folgende Codezeilen:
Code: filename = os.path.splitext("/media/user/index.html")
Ausgabe:
Zitat:Das ist filename: /media/user/index
Code: file_extension = os.path.splitext("/media/user/index.html")
Ausgabe:
Zitat:Das ist file_extension: .html
Code: basename = os.path.basename("/media/user/index.html")
Ausgabe:
Zitat:Das ist basename: index.html
|
|
|
Arbeitsverzeichnis prüfen |
Geschrieben von: Joopi - 22-01-2023, 07:07 - Forum: Programmieren
- Keine Antworten
|
 |
Vor längerer Zeit hatte ich mal aus Unachtsamkeit mit Home-Verzeichnis geschrottet. Seitdem bin ich sehr vorsichtig, wenn ich auf meinem Hauptrechner programmiere und mich im Bereich der Ordner und Dateien bewege. Mittlerweile prüfen ich in dem Skript, ob das aktuelle Arbeitsverzeichnis nicht das Home-Verzeichnis ist.
Code: def homedir_pruefen():
if os.getcwd() == "/home/user":
print(os.getcwd())
sys.exit("Das falsche Arbeitsverzeichnis ist ausgewählt: /home/user")
return
homedir_pruefen()
Der Vergleich Arbeitsordner und Home-Ordner darf nicht mit einem Schrägstrich enden, da getcwd ihn auch nicht hat.
Bei der Angabe des Homeverzeichnisses darf am Ende kein / gesetzt werden, da os.getcwd() diesen auch nicht ausgibt.
|
|
|
Tilix mit Layout starten |
Geschrieben von: Joopi - 17-01-2023, 05:19 - Forum: Linux
- Keine Antworten
|
 |
Tilix ist ein Tiling-Manager und erlaubt es, verschiedene Terminfenster zu organisieren.
Derzeit nutze ich zwei Sessions, die jeweils in einer json-Datei gespeichert sind. Um diese beiden Sessions z.B. aus dem KDE-Menü zu starten, ist folgender Befehl notwendig, um direkt die Layout nutzen zu können:
Code: tilix --session <pfad_zur_json_datei>/dateiname.json
Somit muss ich erst über das Tilix-Menü die json-Datei suchen und dann öffnen.
|
|
|
ChatGPT - Irrsinn oder Wahnsinn |
Geschrieben von: Joopi - 14-01-2023, 10:51 - Forum: Blog
- Keine Antworten
|
 |
Heute habe ich mich erstmals etwas intensiver mit dem Chatprogramm ChatGPT befasst. Das browserbasierte Tool ist noch in der Erprobung, daher kann nicht alles funktionieren. Und das tut es auch nicht.
Allerdings, und das deckt sich mit den Eindrücken, die ich in diversen Videos erhalten konnte, ist ChatGPT in der Tat ein irrsinnig umfangreicher Wissensspeicher. Ich habe so einiges eingegeben und habe, soweit ich das ermitteln kann, richtige Antworten bekommen.
Allerdings fiel mir auf, dass die Antworten nicht immer vollständig ausgeschrieben wurden. Ich gehe mal davon aus, dass derzeit die Auslastung sehr hoch und die Technik noch nicht so umfangreich und skaliert ist, dass der Massenansturm bewältigt werden kann.
Zudem gab es häufig diesen Hinweis:
Es erschien mir zunächst so, dass sich das auf mich bezog. Ok, dachte ich, warte mal ab und versuche es noch einmal. Wenn ich mich dann wieder daran setzte, gab es den Hinweis, dass die Kapazitäten ausgeschöpft seien.
Fazit:
Für mich also Otto-Normal-Verbraucher erscheint ChatGPT wie ein Wunderwerk wie analog damals zu WikePedia in den Anfängen. Ob und wie sich diese Art der Wissensvermittlung durchsetzen kann, wird sich noch zeigen müssen. Die Angst der Softwareentwickler und -programmierer kann ich verstehen, auch wenn ich nicht daran glaube, dass es hier zu Massenentlassungen kommen wird.
|
|
|
KDE - Python aus Menü starten |
Geschrieben von: Joopi - 14-01-2023, 04:15 - Forum: Linux
- Keine Antworten
|
 |
Seit einiger Zeit schreibe ich eigene Python-Skripte, die mir einiges an Arbeit abnehmen. An Python habe ich richtig Spaß gefunden.
Python-Skripte, die in einem Linuxsystem ihre Arbeit tun sollen, werden normalerweise direrkt aus der Konsole gestartet:
Code: python3 pythonskript.py
Wenn man nur zwei oder drei Skripte hat, dann ist das auch kein Thema. Bei mir häufen sich die Skripte aber nun, denn ich möchte mit jedem einzelnen Skript nur eine in sich abgeschlossene Aktion ausführen lassen.
Es ist so gesehen kein Akt, im KDE-Menü eigene Programm einzubauen. Shell-Skripte (*.sh) sind einfach in den Menübaum einzutragen und schon werden diese in einem Terminalfenster ausgeführt.
Python-Skripte jedoch werden in einer Shell gestartet und dann ausgeführt, also muss auch erst ein Terminalfenster gestartet werden. Einfach so ein Python-Skript in den Menübaum hängen, wird nicht wirklich gut funktionieren.
Ich habe mir damit geholfen, dass ich einen Shell-Wrapper programmiert habe (Idee aus dem Internet aufgenommen). Dieser sieht wie folgt aus:
Code: #!/usr/bin/bash
#
#*********************************************************************************************
# Datum: 13.01.2023
# Dateiname: _terminal_wrapper.sh
# Autor: Jopii
#
#*********************************************************************************************
#
bash python3 $1
Damit wird zunächst Python in der Shell gestartet.
Wichtig ist aber nun, dass die Einstellung zum Dateityp (hier: .py) geändert wird. Diese ist nämlich jetzt auf die Python-Skripte auszurichten.
Sodann kann das Python-Skript in das KDE-Menü eingehangen werden. Das hat bei mir einige Zeit gedauert bis mir klar war, wie ich das machen muss. Aber letztlich hat es wirklich funktioniert.
Hier ist zu beachten, dass der komplette Pfad zur Skriptdatei angegeben wird. Ansonsten kann es zu Komplikationen kommen.
Im Reiter Erweitert ist dann noch der Haken bei Im Termin starten zu setzen, aber nichts in die Befehlszeile einzutragen.
Ob dieses Vorgehen immer und überall funktioniert, kann ich nicht sagen. Bei mir unter Kubuntu 20.04 LTS läuft es jetzt gut. Und darüber bin ich doch sehr froh.
Ein Nachteil bei der Sache ist, dass das Terminalfenster nach der Ausführung des Python-Skripts sofort geschlossen wird. Es gibt zwar Mittel und Wege (z.B. konsole --noclose -e), um dieses zu verhindern, aber die haben mich nicht überzeugt.
Nach der Beendigung des ein oder anderen Python-Skripts möchte ich gerne sehen, ob es eine Meldung gibt, die ich eingebaut habe. Daher habe ich in den Skripten, die nicht sofort nach der Ausführung verschwinden sollen, einfach ein Sleep von wenigen Sekunden eingebaut.
Code: import time
time.sleep(10) # Das Skript wird 10 Sekunden angehalten.
Andere Meldungen werden gesammelt und im Bedarfsfalle über das interne Mailsystem einfach in meinem Postfach abgelegt. Auch das war eine gute Übung für mich und meinen neuen Freund Python!
|
|
|
|