Hallo, Gast |
Du musst dich registrieren bevor du auf unserer Seite Beiträge schreiben kannst.
|
Foren-Statistiken |
» Mitglieder: 1
» Neuestes Mitglied: Joopi
» Foren-Themen: 521
» Foren-Beiträge: 741
Komplettstatistiken
|
Benutzer Online |
Momentan sind 6 Benutzer online » 0 Mitglieder » 3 Gäste AhrefsBot, Crawl, bot
|
Aktive Themen |
Sunday - 03:00 CDT: Not a...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
Gestern, 12:15
» Antworten: 0
» Ansichten: 16
|
Saturday - 03:00 CDT: Not...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
05-07-2025, 12:44
» Antworten: 0
» Ansichten: 25
|
Friday - 15:00 CDT: Not a...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
05-07-2025, 12:44
» Antworten: 0
» Ansichten: 29
|
Thursday - 03:00 CDT: Not...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
03-07-2025, 11:48
» Antworten: 0
» Ansichten: 35
|
Wednesday - 06:00 CDT: No...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
02-07-2025, 03:46
» Antworten: 0
» Ansichten: 37
|
Tuesday - 14:00 CDT: Not ...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
01-07-2025, 11:46
» Antworten: 0
» Ansichten: 39
|
Monday - 09:00 CDT: Hazy,...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
30-06-2025, 06:33
» Antworten: 0
» Ansichten: 40
|
Monday - 05:00 CDT: Not a...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
30-06-2025, 02:34
» Antworten: 0
» Ansichten: 37
|
Sunday - 16:00 CDT: Not a...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
30-06-2025, 01:44
» Antworten: 0
» Ansichten: 38
|
Friday - 04:00 CDT: Not a...
Forum: Wetter in Little Rock
Letzter Beitrag: Joopi
27-06-2025, 01:54
» Antworten: 0
» Ansichten: 45
|
|
|
Große Zahlen für Menschen lesbar darstellen |
Geschrieben von: Joopi - 23-01-2023, 07:20 - Forum: Programmieren
- Keine Antworten
|
 |
Dann und wann sind Zahlen so groß, dass diese kaum auf den ersten Blick lesbar sind.
Es gibt aber die Möglichkeit, in der Konsole wie auch in einem Pythonskript, solche Zahlen, die meist eine Größe darstellen, für Menschen besser lesbar zu machen.
Der nachfolgende Codeschnipsel zeigt es:
Code: from humanize import naturalsize
import os
file_size = os.path.getsize(bilddatei)
print(f"Ich bin so groß: {naturalsize(file_size)}")
|
|
|
Bilder auf eine maximale Seitenbreite/-höhe verkleinern |
Geschrieben von: Joopi - 23-01-2023, 06:00 - Forum: Programmieren
- Keine Antworten
|
 |
Viele Bilder, die ich in meiner Sammlung habe, brauche ich nicht in der Originalgröße mehreren MegaBytes. Daher reduziere ich alle diese Bilder auf eine maximale Breite oder maximale Höhe von 1.024 Pixel.
In der Konsole erledige ich diese Aufgabe mit dem Tool ffprobe und muss mich mehr oder weniger um nichts kümmern. In Python sieht auch das anders aus.
Der folgende Codeschnipsel, der noch stark verbesserungswürdig ist, erledigt diese Aufgabe.
Code: import os
import pathlib
from PIL import Image
import PIL
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():
imgfile = Image.open(rf"{bilddatei}")
# Breite x Höhe.
# Ausgabe in Tuple.
# Der Maximalwert ist 1024 Pixel für Breite oder Höhe - je nach dem.
width, height = imgfile.size
if width > 1024 or height > 1024:
# Berechnung auf Grundlage des Maximalwertes von 1024
if width >= height:
verhaeltnis = height * 100 / width
widthnew = 1024
heightnew = verhaeltnis * widthnew / 100
newsize = (int(widthnew), int(heightnew))
imgfile = imgfile.resize(newsize)
imgfile = imgfile.save(bilddatei)
elif height > width:
verhaeltnis = width * 100 / height
heightnew = 1024
widthnew = verhaeltnis * heightnew / 100
newsize = (int(widthnew), int(heightnew))
imgfile = imgfile.resize(newsize)
imgfile = imgfile.save(bilddatei)
os.chdir("..")
|
|
|
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.
|
|
|
|