Mass Replace while dividing the value
-
@Ekopalypse running your script gives me this error in the Python Console:
Traceback (most recent call last): File "C:\Program Files\Notepad++\plugins\PythonScript\scripts\calculate3.py", line 4, in <module> root = ET.XML(editor.getText()) File "C:\Program Files\Notepad++\plugins\PythonScript\lib\xml\etree\ElementTree.py", line 1310, in XML parser = XMLParser(target=TreeBuilder()) File "C:\Program Files\Notepad++\plugins\PythonScript\lib\xml\etree\ElementTree.py", line 1482, in __init__ "No module named expat; use SimpleXMLTreeBuilder instead" ImportError: No module named expat; use SimpleXMLTreeBuilder insteadI have PythonScript 2.0.0.0 and XML Tools 3.1.1.13 installed
Any ideas?
Ty -
how did you install the python script plugin?
Via plugin admin? -
The error points to a missing expat library, which afaik is part of Python’s standard library.
I just tried it with a fresh portable and PS2.0.0, seems to work.

-
@Ekopalypse I download it from here: https://github.com/bruderstein/PythonScript/releases “PythonScript_2.0.0.0_x64.msi”
I will try to remove it and install it from the plugin admin -
how can I remove the .0 after the value? thank you
-
replace
max_hp.text = "{:.1f}".format(value)withmax_hp.text = "{}".format(int(value)) -
@Ekopalypse ty, I reinstalled the Python Module by using Notepad++ Plugin Admin, and now I get this new error:
Traceback (most recent call last): File "C:\Program Files\Notepad++\plugins\PythonScript\scripts\Tests\calculate3.py", line 4, in <module> root = ET.XML(editor.getText()) File "C:\Program Files\Notepad++\plugins\PythonScript\lib\xml\etree\ElementTree.py", line 1311, in XML parser.feed(text) File "C:\Program Files\Notepad++\plugins\PythonScript\lib\xml\etree\ElementTree.py", line 1659, in feed self._raiseerror(v) File "C:\Program Files\Notepad++\plugins\PythonScript\lib\xml\etree\ElementTree.py", line 1523, in _raiseerror raise err xml.etree.ElementTree.ParseError: encoding specified in XML declaration is incorrect: line 1, column 30 -
looks like your xml encoding data is incorrect. Can you post the xml data? If not, only the first few lines?
-
@Ekopalypse it’s a huge file of 154 MB, I will post a bit of it
<?xml version="1.0" encoding="UTF-16" ?> <!DOCTYPE strings [ <!ENTITY quot "quot"> <!ENTITY amp "amp"> <!ENTITY apos "apos"> <!ENTITY lt "lt"> <!ENTITY gt "gt"> <!ENTITY nbsp "nbsp"> <!ENTITY iexcl "iexcl"> <!ENTITY cent "cent"> <!ENTITY pound "pound"> <!ENTITY curren "curren"> <!ENTITY yen "yen"> <!ENTITY brvbar "brvbar"> <!ENTITY sect "sect"> <!ENTITY uml "uml"> <!ENTITY copy "copy"> <!ENTITY ordf "ordf"> <!ENTITY laquo "laquo"> <!ENTITY not "not"> <!ENTITY shy "shy"> <!ENTITY reg "reg"> <!ENTITY macr "macr"> <!ENTITY deg "deg"> <!ENTITY plusmn "plusmn"> <!ENTITY sup2 "sup2"> <!ENTITY sup3 "sup3"> <!ENTITY acute "acute"> <!ENTITY micro "micro"> <!ENTITY para "para"> <!ENTITY middot "middot"> <!ENTITY cedil "cedil"> <!ENTITY sup1 "sup1"> <!ENTITY ordm "ordm"> <!ENTITY raquo "raquo"> <!ENTITY frac14 "frac14"> <!ENTITY frac12 "frac12"> <!ENTITY frac34 "frac34"> <!ENTITY iquest "iquest"> <!ENTITY Agrave "Agrave"> <!ENTITY Aacute "Aacute"> <!ENTITY Acirc "Acirc"> <!ENTITY Atilde "Atilde"> <!ENTITY Auml "Auml"> <!ENTITY Aring "Aring"> <!ENTITY AElig "AElig"> <!ENTITY Ccedil "Ccedil"> <!ENTITY Egrave "Egrave"> <!ENTITY Eacute "Eacute"> <!ENTITY Ecirc "Ecirc"> <!ENTITY Euml "Euml"> <!ENTITY Igrave "Igrave"> <!ENTITY Iacute "Iacute"> <!ENTITY Icirc "Icirc"> <!ENTITY Iuml "Iuml"> <!ENTITY ETH "ETH"> <!ENTITY Ntilde "Ntilde"> <!ENTITY Ograve "Ograve"> <!ENTITY Oacute "Oacute"> <!ENTITY Ocirc "Ocirc"> <!ENTITY Otilde "Otilde"> <!ENTITY Ouml "Ouml"> <!ENTITY times "times"> <!ENTITY Oslash "Oslash"> <!ENTITY Ugrave "Ugrave"> <!ENTITY Uacute "Uacute"> <!ENTITY Ucirc "Ucirc"> <!ENTITY Uuml "Uuml"> <!ENTITY Yacute "Yacute"> <!ENTITY THORN "THORN"> <!ENTITY szlig "szlig"> <!ENTITY agrave "agrave"> <!ENTITY aacute "aacute"> <!ENTITY acirc "acirc"> <!ENTITY atilde "atilde"> <!ENTITY auml "auml"> <!ENTITY aring "aring"> <!ENTITY aelig "aelig"> <!ENTITY ccedil "ccedil"> <!ENTITY egrave "egrave"> <!ENTITY eacute "eacute"> <!ENTITY ecirc "ecirc"> <!ENTITY euml "euml"> <!ENTITY igrave "igrave"> <!ENTITY iacute "iacute"> <!ENTITY icirc "icirc"> <!ENTITY iuml "iuml"> <!ENTITY eth "eth"> <!ENTITY ntilde "ntilde"> <!ENTITY ograve "ograve"> <!ENTITY oacute "oacute"> <!ENTITY ocirc "ocirc"> <!ENTITY otilde "otilde"> <!ENTITY ouml "ouml"> <!ENTITY divide "divide"> <!ENTITY oslash "oslash"> <!ENTITY ugrave "ugrave"> <!ENTITY uacute "uacute"> <!ENTITY ucirc "ucirc"> <!ENTITY uuml "uuml"> <!ENTITY yacute "yacute"> <!ENTITY thorn "thorn"> <!ENTITY yuml "yuml"> <!ENTITY OElig "OElig"> <!ENTITY oelig "oelig"> <!ENTITY Scaron "Scaron"> <!ENTITY scaron "scaron"> <!ENTITY Yuml "Yuml"> <!ENTITY fnof "fnof"> <!ENTITY circ "circ"> <!ENTITY tilde "tilde"> <!ENTITY Alpha "Alpha"> <!ENTITY Beta "Beta"> <!ENTITY Gamma "Gamma"> <!ENTITY Delta "Delta"> <!ENTITY Epsilon "Epsilon"> <!ENTITY Zeta "Zeta"> <!ENTITY Eta "Eta"> <!ENTITY Theta "Theta"> <!ENTITY Iota "Iota"> <!ENTITY Kappa "Kappa"> <!ENTITY Lambda "Lambda"> <!ENTITY Mu "Mu"> <!ENTITY Nu "Nu"> <!ENTITY Xi "Xi"> <!ENTITY Omicron "Omicron"> <!ENTITY Pi "Pi"> <!ENTITY Rho "Rho"> <!ENTITY Sigma "Sigma"> <!ENTITY Tau "Tau"> <!ENTITY Upsilon "Upsilon"> <!ENTITY Phi "Phi"> <!ENTITY Chi "Chi"> <!ENTITY Psi "Psi"> <!ENTITY Omega "Omega"> <!ENTITY alpha "alpha"> <!ENTITY beta "beta"> <!ENTITY gamma "gamma"> <!ENTITY delta "delta"> <!ENTITY epsilon "epsilon"> <!ENTITY zeta "zeta"> <!ENTITY eta "eta"> <!ENTITY theta "theta"> <!ENTITY iota "iota"> <!ENTITY kappa "kappa"> <!ENTITY lambda "lambda"> <!ENTITY mu "mu"> <!ENTITY nu "nu"> <!ENTITY xi "xi"> <!ENTITY omicron "omicron"> <!ENTITY pi "pi"> <!ENTITY rho "rho"> <!ENTITY sigmaf "sigmaf"> <!ENTITY sigma "sigma"> <!ENTITY tau "tau"> <!ENTITY upsilon "upsilon"> <!ENTITY phi "phi"> <!ENTITY chi "chi"> <!ENTITY psi "psi"> <!ENTITY omega "omega"> <!ENTITY thetasym "thetasym"> <!ENTITY upsih "upsih"> <!ENTITY piv "piv"> <!ENTITY ensp "ensp"> <!ENTITY emsp "emsp"> <!ENTITY thinsp "thinsp"> <!ENTITY zwnj "zwnj"> <!ENTITY zwj "zwj"> <!ENTITY lrm "lrm"> <!ENTITY rlm "rlm"> <!ENTITY ndash "ndash"> <!ENTITY mdash "mdash"> <!ENTITY lsquo "lsquo"> <!ENTITY rsquo "rsquo"> <!ENTITY sbquo "sbquo"> <!ENTITY ldquo "ldquo"> <!ENTITY rdquo "rdquo"> <!ENTITY bdquo "bdquo"> <!ENTITY dagger "dagger"> <!ENTITY Dagger "Dagger"> <!ENTITY bull "bull"> <!ENTITY hellip "hellip"> <!ENTITY permil "permil"> <!ENTITY prime "prime"> <!ENTITY Prime "Prime"> <!ENTITY lsaquo "lsaquo"> <!ENTITY rsaquo "rsaquo"> <!ENTITY oline "oline"> <!ENTITY frasl "frasl"> <!ENTITY euro "euro"> <!ENTITY image "image"> <!ENTITY weierp "weierp"> <!ENTITY real "real"> <!ENTITY trade "trade"> <!ENTITY alefsym "alefsym"> <!ENTITY larr "larr"> <!ENTITY uarr "uarr"> <!ENTITY rarr "rarr"> <!ENTITY darr "darr"> <!ENTITY harr "harr"> <!ENTITY crarr "crarr"> <!ENTITY lArr "lArr"> <!ENTITY uArr "uArr"> <!ENTITY rArr "rArr"> <!ENTITY dArr "dArr"> <!ENTITY hArr "hArr"> <!ENTITY forall "forall"> <!ENTITY part "part"> <!ENTITY exist "exist"> <!ENTITY empty "empty"> <!ENTITY nabla "nabla"> <!ENTITY isin "isin"> <!ENTITY notin "notin"> <!ENTITY ni "ni"> <!ENTITY prod "prod"> <!ENTITY sum "sum"> <!ENTITY minus "minus"> <!ENTITY lowast "lowast"> <!ENTITY radic "radic"> <!ENTITY prop "prop"> <!ENTITY infin "infin"> <!ENTITY ang "ang"> <!ENTITY and "and"> <!ENTITY or "or"> <!ENTITY cap "cap"> <!ENTITY cup "cup"> <!ENTITY int "int"> <!ENTITY there4 "there4"> <!ENTITY sim "sim"> <!ENTITY cong "cong"> <!ENTITY asymp "asymp"> <!ENTITY ne "ne"> <!ENTITY equiv "equiv"> <!ENTITY le "le"> <!ENTITY ge "ge"> <!ENTITY sub "sub"> <!ENTITY sup "sup"> <!ENTITY nsub "nsub"> <!ENTITY sube "sube"> <!ENTITY supe "supe"> <!ENTITY oplus "oplus"> <!ENTITY otimes "otimes"> <!ENTITY perp "perp"> <!ENTITY sdot "sdot"> <!ENTITY lceil "lceil"> <!ENTITY rceil "rceil"> <!ENTITY lfloor "lfloor"> <!ENTITY rfloor "rfloor"> <!ENTITY lang "lang"> <!ENTITY rang "rang"> <!ENTITY loz "loz"> <!ENTITY spades "spades"> <!ENTITY clubs "clubs"> <!ENTITY hearts "hearts"> <!ENTITY diams "diams"> ]> <npcs generated_time="2014/05/21 19:07:59"> <npc> <id>250001</id> <name>AbProto_Ab1_Artifact_light_0</name> <desc>STR_AbProto_Ab1_Artifact_light_0</desc> <__spawn_zonename__>AbProto</__spawn_zonename__> <dir>NPC/NPC/Level_Object/artifact</dir> <mesh>artifact_light</mesh> <no_check_animation>1</no_check_animation> <bound_radius> <front>0.500000</front> <side>0.700000</side> <upper>2.000000</upper> </bound_radius> <scale>100</scale> <weapon_scale>100</weapon_scale> <altitude>0.000000</altitude> <move_speed_normal_walk>0.000000</move_speed_normal_walk> <move_speed_normal_run>0.000000</move_speed_normal_run> <move_speed_combat_run>0.000000</move_speed_combat_run> <pushed_range>0.000000</pushed_range> <dual>0</dual> <level>1</level> <exp>105</exp> <dp>100</dp> <max_hp>158</max_hp> <hpgauge_level>3</hpgauge_level> <hp_regen>79</hp_regen> <physical_attack>24</physical_attack> <physical_defend>103</physical_defend> <magical_attack>14</magical_attack> <magical_defend>0</magical_defend> <magical_resist>96</magical_resist> <min_damage>19</min_damage> <max_damage>29</max_damage> <magical_skill_boost>0</magical_skill_boost> <magical_skill_boost_resist>0</magical_skill_boost_resist> <hit_count>1</hit_count> <attack_delay>2100</attack_delay> <hit_accuracy>207</hit_accuracy> <magical_hit_accuracy>46</magical_hit_accuracy> <critical>5</critical> <magical_critical>5</magical_critical> <concentration>0</concentration> <dodge>123</dodge> <parry>0</parry> <block>0</block> <dp_reduce>0</dp_reduce> <abyss_point>14</abyss_point> <abyss_rank>1</abyss_rank> <cancel_level>100</cancel_level> <first_level_attr> <elemental_defend_light>0</elemental_defend_light> <elemental_defend_dark>0</elemental_defend_dark> <elemental_defend_earth>0</elemental_defend_earth> <elemental_defend_air>0</elemental_defend_air> <elemental_defend_water>0</elemental_defend_water> <elemental_defend_fire>0</elemental_defend_fire> </first_level_attr> <abnormal_penetrations> <data> <abnormal_penetration_value>0</abnormal_penetration_value> </data> <data> <abnormal_penetration_value>0</abnormal_penetration_value> </data> <data> <abnormal_penetration_value>0</abnormal_penetration_value> </data> </abnormal_penetrations> <first_attack_split_rate>Split_Default</first_attack_split_rate> <ai_name>NPC</ai_name> <idle_name>NoMove</idle_name> <tribe>General</tribe> <race_type>pc_light</race_type> <pet_ai_name>Pet</pet_ai_name> <max_enemy_count>10</max_enemy_count> <sensory_range>8.000000</sensory_range> <sensory_angle>360</sensory_angle> <chase_flying>1</chase_flying> <react_to_pathfind_fail>return_to_sp</react_to_pathfind_fail> <can_see_invisible>0</can_see_invisible> <can_see_polymorph>true</can_see_polymorph> <npc_type>General</npc_type> <no_penalty>1</no_penalty> <unattackable>1</unattackable> <talking_distance>5.000000</talking_distance> <abyss_npc_type>artifact</abyss_npc_type> <artifact_id>5</artifact_id> <user_animation>quest_energyblow</user_animation> </npc> <npc> <id>250002</id> <name>AbProto_Ab1_Artifact_dark_0</name> <desc>STR_AbProto_Ab1_Artifact_dark_0</desc> <__spawn_zonename__>AbProto</__spawn_zonename__> <dir>NPC/NPC/Level_Object/artifact</dir> <mesh>artifact_dark</mesh> <no_check_animation>1</no_check_animation> <bound_radius> <front>0.500000</front> <side>0.700000</side> <upper>2.000000</upper> </bound_radius> <scale>100</scale> <weapon_scale>100</weapon_scale> <altitude>0.000000</altitude> <move_speed_normal_walk>0.000000</move_speed_normal_walk> <move_speed_normal_run>0.000000</move_speed_normal_run> <move_speed_combat_run>0.000000</move_speed_combat_run> <pushed_range>0.000000</pushed_range> <dual>0</dual> <level>1</level> <exp>105</exp> <dp>100</dp> <max_hp>158</max_hp> <hpgauge_level>3</hpgauge_level> <hp_regen>79</hp_regen> <physical_attack>24</physical_attack> <physical_defend>103</physical_defend> <magical_attack>14</magical_attack> <magical_defend>0</magical_defend> <magical_resist>96</magical_resist> <min_damage>19</min_damage> <max_damage>29</max_damage> <magical_skill_boost>0</magical_skill_boost> <magical_skill_boost_resist>0</magical_skill_boost_resist> <hit_count>1</hit_count> <attack_delay>2100</attack_delay> <hit_accuracy>207</hit_accuracy> <magical_hit_accuracy>46</magical_hit_accuracy> <critical>5</critical> <magical_critical>5</magical_critical> <concentration>0</concentration> <dodge>123</dodge> <parry>0</parry> <block>0</block> <dp_reduce>0</dp_reduce> <abyss_point>14</abyss_point> <abyss_rank>1</abyss_rank> <cancel_level>100</cancel_level> <first_level_attr> <elemental_defend_light>0</elemental_defend_light> <elemental_defend_dark>0</elemental_defend_dark> <elemental_defend_earth>0</elemental_defend_earth> <elemental_defend_air>0</elemental_defend_air> <elemental_defend_water>0</elemental_defend_water> <elemental_defend_fire>0</elemental_defend_fire> </first_level_attr> <abnormal_penetrations> <data> <abnormal_penetration_value>0</abnormal_penetration_value> </data> <data> <abnormal_penetration_value>0</abnormal_penetration_value> </data> <data> <abnormal_penetration_value>0</abnormal_penetration_value> </data> </abnormal_penetrations> <first_attack_split_rate>Split_Default</first_attack_split_rate> <ai_name>NPC</ai_name> <idle_name>NoMove</idle_name> <tribe>General_Dark</tribe> <race_type>pc_dark</race_type> <pet_ai_name>Pet</pet_ai_name> <max_enemy_count>10</max_enemy_count> <sensory_range>8.000000</sensory_range> <sensory_angle>360</sensory_angle> <chase_flying>1</chase_flying> <react_to_pathfind_fail>return_to_sp</react_to_pathfind_fail> <can_see_invisible>0</can_see_invisible> <can_see_polymorph>true</can_see_polymorph> <npc_type>General</npc_type> <no_penalty>1</no_penalty> <unattackable>1</unattackable> <talking_distance>5.000000</talking_distance> <abyss_npc_type>artifact</abyss_npc_type> <artifact_id>5</artifact_id> <user_animation>quest_energyblow</user_animation> </npc> -
hmm, looks ok, can you use xml tools to verify if it really is correct?
-
ooopppsss - PS is indeed complaining
-
ahh - not supported by PS2 and it removes the header
No, sorry, using xml module does not work in this case
Back to your regex solution. Gimme a sec. -
@Ekopalypse I removed the DT stuff on top of the file and still get those errors
Traceback (most recent call last): File "C:\Program Files\Notepad++\plugins\PythonScript\scripts\Tests\calculate4.py", line 4, in <module> root = ET.XML(editor.getText()) File "C:\Program Files\Notepad++\plugins\PythonScript\lib\xml\etree\ElementTree.py", line 1311, in XML parser.feed(text) File "C:\Program Files\Notepad++\plugins\PythonScript\lib\xml\etree\ElementTree.py", line 1659, in feed self._raiseerror(v) File "C:\Program Files\Notepad++\plugins\PythonScript\lib\xml\etree\ElementTree.py", line 1523, in _raiseerror raise err xml.etree.ElementTree.ParseError: encoding specified in XML declaration is incorrect: line 1, column 30 -
def regexmath(m): return "{}".format(int(float(m.group())*0.5)) editor.rereplace('(?<=<max_hp>)\d+\.*\d*(?=</max_hp>)', regexmath)will replace the ones without surrounded by quotes.
editor.rereplace('(?<=<max_hp>")\d+\.*\d*(?="</max_hp>)', regexmath)will replace if surrounded by quotes.
-
@Ekopalypse thank you very much kind sir, it works, have a great and amazing day
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login