Hallo Forum,
bin in letzter Zeit nicht wirklich in Python weitergekommen, da andere Projekte anstanden.
Ich hab heute eine wahrscheinlich für Euch kleine Aufgabenstellung, aber keinen blassen Schimmer, wie ich es anstellen soll.
Meine Anforderungen sollen sein einen ASCII-Text-File nach einem oder mehreren Text-Blöcken zu durchsuchen,
und diese dann mit einem neuen Text-Block (oder mehreren) aus einer oder verschiedenen ASCII-Datei stammend aus zu tauschen.
Ich hab im Forum schon mal geblättert, aber nicht das richtige nach meinem Geschmack gefunden.
Kann mir jemand von Euch einen Tipp geben, welche Methode man am besten anwenden sollte.
Vielen Dank schon mal im Voraus!
Cheers, 5inch
ASCII-Text-Blöcke suchen und austauschen
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Wie immer gilt: Zeig uns mal ein Beispiel!
Sind die Textblöcke fix oder stehen da spezielle "Markierungen", die nun ersetzt werden sollen?
Sind die Textblöcke fix oder stehen da spezielle "Markierungen", die nun ersetzt werden sollen?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
hi Hyperion,
danke das du dir die zeit nimmst!
hier ein bischen XML Code, den ich editieren möchte:
ich möchte gerne diesen Teil mit einem neuen TextBlock austauschen:
kannst Du mir bitte einen Tipp geben, wie man da ran geht?
merci,
sG, 5inch
danke das du dir die zeit nimmst!
hier ein bischen XML Code, den ich editieren möchte:
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<configuration description="Export Images (MI) – AE160 - DIKAB2 (Ueberschriebene Farben)" id="MI3" min_version="1.5.9">
<processor id="MIProcessor">
<file_parameter id="FILE_NAME" required="true" locked="false" visible="true" display_name="Filename" />
<folder_parameter id="SystemRoot" required="true" locked="true" visible="true" display_name="System root"/>
<enum_parameter id="LOD" value="1" display_name="Level of detail"/>
<integer_parameter id="IMAGE_WIDTH" value="640" display_name="Bildbreite" comment="Bildbreite in Pixel" min_value="0"/>
<integer_parameter id="IMAGE_HEIGHT" value="480" display_name="Bildhöhe" comment="Bildhöhe in Pixel" min_value="0"/>
<float_parameter id="CAMERA_FOCAL" value="1.0" display_name="Brennweite" comment="Brennweite der Kamera" min_value="0"/>
<float_parameter id="CAMERA_APERTURE" value="1.0" display_name="Blende" comment="Blendenbreite der Kamera" min_value="0"/>
<folder_parameter id="IMAGE_GENERATION_PATH" value="C:\" display_name="Zielverzeichnis" comment="realtiver Zielpfad für Bilddateien" visible="false" locked="true"/>
<enum_parameter id="IMAGE_TYPE" value="PNG" display_name="Bildformat" comment="Format der zu erzeugenden Bilddatei"/>
<enum_parameter id="LIGHTING_TYPE" value="HEADLIGHT_4_SIDES" display_name="Beleuchtungsart" comment="Einstellung der Art der Beleuchtung"/>
<enum_parameter id="LIGHTING_QUALITY" value="1" display_name="Beleuchtungsqualität" comment="Einstellung der Qualität der Beleuchtung"/>
<enum_parameter id="VIEW" value="ISO" display_name="Ansicht" comment="Ansicht"/>
</processor>
<mi:configuration>
<mi:material_container id="Material_Default"/>
<mi:material_container id="Material_Roboter">
<mi:material colour="26,26,26" epsilon="0.1">
"mib_illum_phong"
(
"diffuse" 0.0 0.0 1 ,
"ambient" 0.0 0.0 1 ,
"specular" 1 1 1 ,
"exponent" 50 ,
"mode" 4 ,
"lights" [ "auto_light_0_inst", "auto_light_1_inst", "auto_light_2_inst", "auto_light_3_inst", "auto_light_4_inst" ]
)
</mi:material>
</mi:material_container>
<!-- Material fuer Bauteile -->
</mi:configuration>
<view id="Study View">
<class id="PmNode">
<property id="caption" value="$(caption)" default="$(name)"/>
<property id="externalID" value="$(externalID)"/>
<property id="miMaterial" value="Material_Default"/>
</class>
<class id="RobcadStudy" is_root="true" is_entry="true">
<property id="children" value="$(children)" is_child="true"/>
<external_aspect id="ENGDATA2" value="#TuneCells\$(externalID)\EngData\engData_ver2.xml"/>
<external_aspect id="SNAPSHOT" value="#TuneCells\$(externalID)\EngData\.appCellViews.xml"/>
</class>
Code: Alles auswählen
<mi:configuration>
<mi:material_container id="Material_Default"/>
<mi:material_container id="Material_Roboter">
<mi:material colour="26,26,26" epsilon="0.1">
"mib_illum_phong"
(
"diffuse" 0.0 0.0 1 ,
"ambient" 0.0 0.0 1 ,
"specular" 1 1 1 ,
"exponent" 50 ,
"mode" 4 ,
"lights" [ "auto_light_0_inst", "auto_light_1_inst", "auto_light_2_inst", "auto_light_3_inst", "auto_light_4_inst" ]
)
</mi:material>
</mi:material_container>
merci,
sG, 5inch
...It isn’t about how hard you hit, it's about how hard you can get hit and keep moving forward. How much can you take and keep moving forward? That's how winning is done. ----Rocky Balboa
aehm soory falscher Block, ich wollte natürlich bis hier hin tauschen:
Code: Alles auswählen
<mi:configuration>
<mi:material_container id="Material_Default"/>
<mi:material_container id="Material_Roboter">
<mi:material colour="26,26,26" epsilon="0.1">
"mib_illum_phong"
(
"diffuse" 0.0 0.0 1 ,
"ambient" 0.0 0.0 1 ,
"specular" 1 1 1 ,
"exponent" 50 ,
"mode" 4 ,
"lights" [ "auto_light_0_inst", "auto_light_1_inst", "auto_light_2_inst", "auto_light_3_inst", "auto_light_4_inst" ]
)
</mi:material>
</mi:material_container>
<!-- Material fuer Bauteile -->
</mi:configuration>
...It isn’t about how hard you hit, it's about how hard you can get hit and keep moving forward. How much can you take and keep moving forward? That's how winning is done. ----Rocky Balboa
@5inch: XML-Dateien sind keine Textdateien. Wenn man die als solche behandelt wird man früher oder später auf Probleme stossen. XML-Daten verarbeitet man mit Werkzeugen die XML verstehen.
hi BlackJack,
ok, verstehe, und wie mach ich das am besten?
:K
ich hab gesehen, da gibts in Python bestimmte Tools (LXML, usw...)
Stimmt das, sollte man so etwas nehmen?
sG, 5inch
ok, verstehe, und wie mach ich das am besten?
:K
ich hab gesehen, da gibts in Python bestimmte Tools (LXML, usw...)
Stimmt das, sollte man so etwas nehmen?
sG, 5inch
...It isn’t about how hard you hit, it's about how hard you can get hit and keep moving forward. How much can you take and keep moving forward? That's how winning is done. ----Rocky Balboa
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Du kannst das vermutlich auch mit dem "ElementTree"-Modul aus der Standard Lib lösen; `lxml` bietet jedoch mehr, z.B. XPath uvm.
Wenn es keine Umstände macht, würde ich mir einfach mal `lxml` installieren und mich damit zum Ziel tasten
Wenn es keine Umstände macht, würde ich mir einfach mal `lxml` installieren und mich damit zum Ziel tasten
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
hi Hyperion,
danke für den Tipp, werd ich mir mal anschauen.
Meld mich wieder sobald ich etwas Code zu zeigen habe.
Merci,
sG, 5inch
danke für den Tipp, werd ich mir mal anschauen.
Meld mich wieder sobald ich etwas Code zu zeigen habe.
Merci,
sG, 5inch
...It isn’t about how hard you hit, it's about how hard you can get hit and keep moving forward. How much can you take and keep moving forward? That's how winning is done. ----Rocky Balboa