How can I convert this Python2.x code to Python3.x? - python

File "gridworld.py", line 19, in <module>
import util
File "/home/user/Desktop/reinforcement/util.py", line 23
fixedState = (3, 2147483648L, 507801126L, 683453281L, 310439348L, 2597246090L, \
^
SyntaxError: invalid syntax
class FixedRandom:
def __init__(self):
fixedState = (3, (2147483648L, 507801126L, 683453281L, 310439348L, 2597246090L, \
2209084787L, 2267831527L, 979920060L, 3098657677L, 37650879L, 807947081L, 3974896263L, \
881243242L, 3100634921L, 1334775171L, 3965168385L, 746264660L, 4074750168L, 500078808L, \
776561771L, 702988163L, 1636311725L, 2559226045L, 157578202L, 2498342920L, 2794591496L, \
4130598723L, 496985844L, 2944563015L, 3731321600L, 3514814613L, 3362575829L, 3038768745L, \
2206497038L, 1108748846L, 1317460727L, 3134077628L, 988312410L, 1674063516L, 746456451L, \
3958482413L, 1857117812L, 708750586L, 1583423339L, 3466495450L, 1536929345L, 1137240525L, \
3875025632L, 2466137587L, 1235845595L, 4214575620L, 3792516855L, 657994358L, 1241843248L, \
1695651859L, 3678946666L, 1929922113L, 2351044952L, 2317810202L, 2039319015L, 460787996L, \
3654096216L, 4068721415L, 1814163703L, 2904112444L, 1386111013L, 574629867L, 2654529343L, \
3833135042L, 2725328455L, 552431551L, 4006991378L, 1331562057L, 3710134542L, 303171486L, \
1203231078L, 2670768975L, 54570816L, 2679609001L, 578983064L, 1271454725L, 3230871056L, \
2496832891L, 2944938195L, 1608828728L, 367886575L, 2544708204L, 103775539L, 1912402393L, \
1098482180L, 2738577070L, 3091646463L, 1505274463L, 2079416566L, 659100352L, 839995305L, \
1696257633L, 274389836L, 3973303017L, 671127655L, 1061109122L, 517486945L, 1379749962L, \
3421383928L, 3116950429L, 2165882425L, 2346928266L, 2892678711L, 2936066049L, 1316407868L, \
2873411858L, 4279682888L, 2744351923L, 3290373816L, 1014377279L, 955200944L, 4220990860L, \
2386098930L, 1772997650L, 3757346974L, 1621616438L, 2877097197L, 442116595L, 2010480266L, \
2867861469L, 2955352695L, 605335967L, 2222936009L, 2067554933L, 4129906358L, 1519608541L, \
1195006590L, 1942991038L, 2736562236L, 279162408L, 1415982909L, 4099901426L, 1732201505L, \
2934657937L, 860563237L, 2479235483L, 3081651097L, 2244720867L, 3112631622L, 1636991639L, \
3860393305L, 2312061927L, 48780114L, 1149090394L, 2643246550L, 1764050647L, 3836789087L, \
3474859076L, 4237194338L, 1735191073L, 2150369208L, 92164394L, 756974036L, 2314453957L, \
323969533L, 4267621035L, 283649842L, 810004843L, 727855536L, 1757827251L, 3334960421L, \
3261035106L, 38417393L, 2660980472L, 1256633965L, 2184045390L, 811213141L, 2857482069L, \
2237770878L, 3891003138L, 2787806886L, 2435192790L, 2249324662L, 3507764896L, 995388363L, \
856944153L, 619213904L, 3233967826L, 3703465555L, 3286531781L, 3863193356L, 2992340714L, \
413696855L, 3865185632L, 1704163171L, 3043634452L, 2225424707L, 2199018022L, 3506117517L, \
3311559776L, 3374443561L, 1207829628L, 668793165L, 1822020716L, 2082656160L, 1160606415L, \
3034757648L, 741703672L, 3094328738L, 459332691L, 2702383376L, 1610239915L, 4162939394L, \
557861574L, 3805706338L, 3832520705L, 1248934879L, 3250424034L, 892335058L, 74323433L, \
3209751608L, 3213220797L, 3444035873L, 3743886725L, 1783837251L, 610968664L, 580745246L, \
4041979504L, 201684874L, 2673219253L, 1377283008L, 3497299167L, 2344209394L, 2304982920L, \
3081403782L, 2599256854L, 3184475235L, 3373055826L, 695186388L, 2423332338L, 222864327L, \
1258227992L, 3627871647L, 3487724980L, 4027953808L, 3053320360L, 533627073L, 3026232514L, \
2340271949L, 867277230L, 868513116L, 2158535651L, 2487822909L, 3428235761L, 3067196046L, \
3435119657L, 1908441839L, 788668797L, 3367703138L, 3317763187L, 908264443L, 2252100381L, \
764223334L, 4127108988L, 384641349L, 3377374722L, 1263833251L, 1958694944L, 3847832657L, \
1253909612L, 1096494446L, 555725445L, 2277045895L, 3340096504L, 1383318686L, 4234428127L, \
1072582179L, 94169494L, 1064509968L, 2681151917L, 2681864920L, 734708852L, 1338914021L, \
1270409500L, 1789469116L, 4191988204L, 1716329784L, 2213764829L, 3712538840L, 919910444L, \
1318414447L, 3383806712L, 3054941722L, 3378649942L, 1205735655L, 1268136494L, 2214009444L, \
2532395133L, 3232230447L, 230294038L, 342599089L, 772808141L, 4096882234L, 3146662953L, \
2784264306L, 1860954704L, 2675279609L, 2984212876L, 2466966981L, 2627986059L, 2985545332L, \
2578042598L, 1458940786L, 2944243755L, 3959506256L, 1509151382L, 325761900L, 942251521L, \
4184289782L, 2756231555L, 3297811774L, 1169708099L, 3280524138L, 3805245319L, 3227360276L, \
3199632491L, 2235795585L, 2865407118L, 36763651L, 2441503575L, 3314890374L, 1755526087L, \
17915536L, 1196948233L, 949343045L, 3815841867L, 489007833L, 2654997597L, 2834744136L, \
417688687L, 2843220846L, 85621843L, 747339336L, 2043645709L, 3520444394L, 1825470818L, \
647778910L, 275904777L, 1249389189L, 3640887431L, 4200779599L, 323384601L, 3446088641L, \
4049835786L, 1718989062L, 3563787136L, 44099190L, 3281263107L, 22910812L, 1826109246L, \
745118154L, 3392171319L, 1571490704L, 354891067L, 815955642L, 1453450421L, 940015623L, \
796817754L, 1260148619L, 3898237757L, 176670141L, 1870249326L, 3317738680L, 448918002L, \
4059166594L, 2003827551L, 987091377L, 224855998L, 3520570137L, 789522610L, 2604445123L, \
454472869L, 475688926L, 2990723466L, 523362238L, 3897608102L, 806637149L, 2642229586L, \
2928614432L, 1564415411L, 1691381054L, 3816907227L, 4082581003L, 1895544448L, 3728217394L, \
3214813157L, 4054301607L, 1882632454L, 2873728645L, 3694943071L, 1297991732L, 2101682438L, \
3952579552L, 678650400L, 1391722293L, 478833748L, 2976468591L, 158586606L, 2576499787L, \
662690848L, 3799889765L, 3328894692L, 2474578497L, 2383901391L, 1718193504L, 3003184595L, \
3630561213L, 1929441113L, 3848238627L, 1594310094L, 3040359840L, 3051803867L, 2462788790L, \
954409915L, 802581771L, 681703307L, 545982392L, 2738993819L, 8025358L, 2827719383L, \
770471093L, 3484895980L, 3111306320L, 3900000891L, 2116916652L, 397746721L, 2087689510L, \
721433935L, 1396088885L, 2751612384L, 1998988613L, 2135074843L, 2521131298L, 707009172L, \
2398321482L, 688041159L, 2264560137L, 482388305L, 207864885L, 3735036991L, 3490348331L, \
1963642811L, 3260224305L, 3493564223L, 1939428454L, 1128799656L, 1366012432L, 2858822447L, \
1428147157L, 2261125391L, 1611208390L, 1134826333L, 2374102525L, 3833625209L, 2266397263L, \
3189115077L, 770080230L, 2674657172L, 4280146640L, 3604531615L, 4235071805L, 3436987249L, \
509704467L, 2582695198L, 4256268040L, 3391197562L, 1460642842L, 1617931012L, 457825497L, \
1031452907L, 1330422862L, 4125947620L, 2280712485L, 431892090L, 2387410588L, 2061126784L, \
896457479L, 3480499461L, 2488196663L, 4021103792L, 1877063114L, 2744470201L, 1046140599L, \
2129952955L, 3583049218L, 4217723693L, 2720341743L, 820661843L, 1079873609L, 3360954200L, \
3652304997L, 3335838575L, 2178810636L, 1908053374L, 4026721976L, 1793145418L, 476541615L, \
973420250L, 515553040L, 919292001L, 2601786155L, 1685119450L, 3030170809L, 1590676150L, \
1665099167L, 651151584L, 2077190587L, 957892642L, 646336572L, 2743719258L, 866169074L, \
851118829L, 4225766285L, 963748226L, 799549420L, 1955032629L, 799460000L, 2425744063L, \
2441291571L, 1928963772L, 528930629L, 2591962884L, 3495142819L, 1896021824L, 901320159L, \
3181820243L, 843061941L, 3338628510L, 3782438992L, 9515330L, 1705797226L, 953535929L, \
764833876L, 3202464965L, 2970244591L, 519154982L, 3390617541L, 566616744L, 3438031503L, \
1853838297L, 170608755L, 1393728434L, 676900116L, 3184965776L, 1843100290L, 78995357L, \
2227939888L, 3460264600L, 1745705055L, 1474086965L, 572796246L, 4081303004L, 882828851L, \
1295445825L, 137639900L, 3304579600L, 2722437017L, 4093422709L, 273203373L, 2666507854L, \
3998836510L, 493829981L, 1623949669L, 3482036755L, 3390023939L, 833233937L, 1639668730L, \
1499455075L, 249728260L, 1210694006L, 3836497489L, 1551488720L, 3253074267L, 3388238003L, \
2372035079L, 3945715164L, 2029501215L, 3362012634L, 2007375355L, 4074709820L, 631485888L, \
3135015769L, 4273087084L, 3648076204L, 2739943601L, 1374020358L, 1760722448L, 3773939706L, \
1313027823L, 1895251226L, 4224465911L, 421382535L, 1141067370L, 3660034846L, 3393185650L, \
1850995280L, 1451917312L, 3841455409L, 3926840308L, 1397397252L, 2572864479L, 2500171350L, \
3119920613L, 531400869L, 1626487579L, 1099320497L, 407414753L, 2438623324L, 99073255L, \
3175491512L, 656431560L, 1153671785L, 236307875L, 2824738046L, 2320621382L, 892174056L, \
230984053L, 719791226L, 2718891946L, 624L), None)
self.random = random.Random()
self.random.setstate(fixedState)
fixedState = (3, (2147483648L, 507801126L, 683453281L, 310439348L, 2597246090L, \
^
SyntaxError: invalid syntax

There is no trailing L needed to define an integer in Python3, which you are using in your code. You need to hence remove the trailing L from your integers and define that without that.
From the docs: https://docs.python.org/3/whatsnew/3.0.html
Integer literals no longer support a trailing l or L.
In [11]: a = 1
In [12]: a = 1L
File "<ipython-input-12-61aa3f5b6495>", line 1
a = 1L
^
SyntaxError: invalid syntax

Related

Python ValueError: not enough values to unpack (expected 3, got 1)

i tried writing this code but had an error. used windows 10 and python 3.8.5
#usage
#python3 coex.py combo.txt extracted.txt
from sys import argv
import re
script , combo_file , ex_file = argv
cfile = open(combo_file)
xfile = open(ex_file, 'w')
def rexmail(cfile):
rexmail = re.compile(r'[a-zA-Z0-9_.+-]+#[a-zA-Z0-9.-]+:[a-zA-Z0-9._-]+')
cfile = rexmail.findall(cfile.read())
lenofclist = len(cfile)
for i in range(lenofclist):
xfile.write("\n")
xfile.write(str(cfile[i]))
print("[+]*********EXTRACTING DONE***********[+]\n")
print("[+]*********CHECK extracted.txt FILE FOR EMAIL:PASS COMBOS*************[+]\n")
def header():
print('''
made with <3
_______ ___ ___ _________ ________ ________ ________ _________ ________ ________
|\ ___ \ |\ \ / /| |\___ ___\ |\ __ \ |\ __ \ |\ ____\ |\___ ___\ |\ __ \ |\ __ \
\ \ __/| \ \ \/ / / \|___ \ \_| \ \ \|\ \ \ \ \|\ \ \ \ \___| \|___ \ \_| \ \ \|\ \ \ \ \|\ \
\ \ \_|/__ \ \ / / \ \ \ \ \ _ _\ \ \ __ \ \ \ \ \ \ \ \ \ \\\ \ \ \ _ _\
\ \ \_|\ \ / \/ \ \ \ \ \ \\ \| \ \ \ \ \ \ \ \____ \ \ \ \ \ \\\ \ \ \ \\ \|
\ \_______\ / /\ \ \ \__\ \ \__\\ _\ \ \__\ \__\ \ \_______\ \ \__\ \ \_______\ \ \__\\ _\
\|_______| /__/ /\ __\ \|__| \|__|\|__| \|__|\|__| \|_______| \|__| \|_______| \|__|\|__|
|__|/ \|__|
EMAIL:PASS extractor from any txt file .
''')
header()
rexmail(cfile)
Error:
Traceback (most recent call last):
File "C:\Users\BRS\Desktop\minecraft\Combo-Extractor-master\coex.py", line 8, in <module>
script , combo_file , ex_file = argv
ValueError: not enough values to unpack (expected 3, got 1)
I dont really get what's off. please help me by correcting this code. and if possible tell me why this happens
is it a problem with tuples or what pls help with this
argv actually return a list whose first element (i.e. index 0 element) is the location of the python file. To correct this error, use
script, combo_file, ex_file = argv[1:]
Alternatively, you can also use _, script, combo_file, ex_file = argv
Relevant Documentation - https://docs.python.org/3/library/sys.html
(Tested on Windows 10 (64 Bit) Python 3.7.4)

Importing product into prestashop using prestapyt

i am trying to import new products in my shop through a python script. I don't have any error when executing it, but i can't see any product on my shop afterward.
Here's my script:
import requests
from prestapyt import PrestaShopWebServiceDict
from xml.etree import ElementTree as ET
import sys
args = sys.argv
if len(args) < 2:
print('Please give a ref and a number')
exit()
reference = args[1]
shop = 'AIO'
presta_url = 'URL'
base_url = 'URL'
prestashop = PrestaShopWebServiceDict(presta_url, 'KEY')
auth = ('KEY', '')
product = prestashop.search('products', options={'filter[reference]': '[' + reference + shop + ']'})
if not product:
product_schema = prestashop.get('products', options={'schema': 'blank'})
print(product_schema)
product_schema['product'].update({'active': '1',
'additional_shipping_cost': '',
'advanced_stock_management': '',
'description': {'language': {'attrs': {'id': '2'}, 'value': 'DESCRIPTION!!!'}},
'description_short': {'language': {'attrs': {'id': '2'},
'value': 'SHORT DESCRIPTION!!!'}},
'id_category_default': '2',
'name': {'language': {'attrs': {'id': '2'}, 'value': 'NAME'}},
'new': '1',
'price': 23.0,
'reference': 'MYREF',
'show_price': '1',
'width': ''})
print(product_schema)
test = prestashop.add('products', product_schema)
print(test)
I do not not what to try now.
I came up with a solution that i'll post here: (presta_url and base_url are both the url to access the webservice).
First we add up the product in the store you chose, then after the product creation we upload the images. Hope this will help.
product = prestashop.search('products', options={'filter[reference]': '[' + reference + ']'})
if product:
base_url = base_url + str(product[0])
r = requests.delete(base_url, auth=auth, allow_redirects=True)
print('DELETED: ' + reference)
if active == '1':
product_xml = "<prestashop> \
<product> \
<id_manufacturer>0</id_manufacturer> \
<id_supplier>0</id_supplier> \
<id_category_default xlink:href='" + presta_url + "/categories/" + id_category + "'>" + id_category + "</id_category_default> \
<new/> \
<cache_default_attribute>0</cache_default_attribute> \
<id_default_image xlink:href='" + presta_url + "/images/products/353/699' notFilterable='true'>699</id_default_image> \
<id_default_combination notFilterable='true'/> \
<id_tax_rules_group xlink:href='" + presta_url + "/tax_rule_groups/1'>1</id_tax_rules_group> \
<position_in_category notFilterable='true'>0</position_in_category> \
<type notFilterable='true'>simple</type> \
<id_shop_default>1</id_shop_default> \
<reference>" + reference + "</reference> \
<supplier_reference/> \
<location/> \
<width>0.000000</width> \
<height>0.000000</height> \
<depth>0.000000</depth> \
<weight>0.000000</weight> \
<quantity_discount>0</quantity_discount> \
<ean13/> \
<isbn/> \
<upc/> \
<cache_is_pack>0</cache_is_pack> \
<cache_has_attachments>0</cache_has_attachments> \
<is_virtual>0</is_virtual> \
<state>1</state> \
<additional_delivery_times>1</additional_delivery_times> \
<delivery_in_stock> \
<language id='1' xlink:href='" + presta_url + "/languages/1'></language> \
<language id='2' xlink:href='" + presta_url + "/languages/2'></language> \
</delivery_in_stock> \
<delivery_out_stock> \
<language id='1' xlink:href='" + presta_url + "/languages/1'></language> \
<language id='2' xlink:href='" + presta_url + "/languages/2'></language> \
</delivery_out_stock> \
<on_sale>0</on_sale> \
<online_only>0</online_only> \
<ecotax>0.000000</ecotax> \
<minimal_quantity>1</minimal_quantity> \
<low_stock_threshold/> \
<low_stock_alert>0</low_stock_alert> \
<price>" + price + "</price> \
<wholesale_price>0.000000</wholesale_price> \
<unity/> \
<unit_price_ratio>0.000000</unit_price_ratio> \
<additional_shipping_cost>0.00</additional_shipping_cost> \
<customizable>0</customizable> \
<text_fields>0</text_fields> \
<uploadable_files>0</uploadable_files> \
<active>" + active + "</active> \
<redirect_type/> \
<id_type_redirected>0</id_type_redirected> \
<available_for_order>1</available_for_order> \
<available_date>0000-00-00</available_date> \
<show_condition>0</show_condition> \
<condition>new</condition> \
<show_price>1</show_price> \
<indexed>1</indexed> \
<visibility>both</visibility> \
<advanced_stock_management>0</advanced_stock_management> \
<date_add>2018-12-10 12:01:10</date_add> \
<date_upd>2018-12-10 12:01:10</date_upd> \
<pack_stock_type>3</pack_stock_type> \
<meta_description> \
<language id='1' xlink:href='" + presta_url + "/languages/1'></language> \
<language id='2' xlink:href='" + presta_url + "/languages/2'></language> \
</meta_description> \
<meta_keywords> \
<language id='1' xlink:href='" + presta_url + "/languages/1'></language> \
<language id='2' xlink:href='" + presta_url + "/languages/2'></language> \
</meta_keywords> \
<meta_title> \
<language id='1' xlink:href='" + presta_url + "/languages/1'></language> \
<language id='2' xlink:href='" + presta_url + "/languages/2'></language> \
</meta_title> \
<name> \
<language id='1' xlink:href='" + presta_url + "/languages/1'>" + name + "</language> \
<language id='2' xlink:href='" + presta_url + "/languages/2'>" + name + "</language> \
</name> \
<description> \
<language id='1' xlink:href='" + presta_url + "/languages/1'>" + description + "</language> \
<language id='2' xlink:href='" + presta_url + "/languages/2'>" + description + "</language> \
</description> \
<description_short> \
<language id='1' xlink:href='" + presta_url + "/languages/1'>" + description_short + "</language> \
<language id='2' xlink:href='" + presta_url + "/languages/2'>" + description_short + "</language> \
</description_short> \
<available_now> \
<language id='1' xlink:href='" + presta_url + "/languages/1'></language> \
<language id='2' xlink:href='" + presta_url + "/languages/2'></language> \
</available_now> \
<available_later> \
<language id='1' xlink:href='" + presta_url + "/languages/1'></language> \
<language id='2' xlink:href='" + presta_url + "/languages/2'></language> \
</available_later> \
<associations> \
<categories nodeType='category' api='categories'> \
<category xlink:href='" + presta_url + "/categories/" + id_category + "'> \
<id>" + id_category + "</id> \
</category> \
</categories> \
<combinations nodeType='combination' api='combinations'/> \
<product_option_values nodeType='product_option_value' api='product_option_values'/> \
<product_features nodeType='product_feature' api='product_features'> \
" + feature_string + " \
</product_features> \
<tags nodeType='tag' api='tags'/> \
<stock_availables nodeType='stock_available' api='stock_availables'> \
<stock_available xlink:href='" + presta_url + "/stock_availables/353'> \
<id>353</id> \
<id_product_attribute>0</id_product_attribute> \
</stock_available> \
</stock_availables> \
<accessories nodeType='product' api='products'/> \
<product_bundle nodeType='product' api='products'/> \
</associations> \
</product> \
</prestashop>"
print('STARTING:' + shop)
test = prestashop.add('products', product_xml)
product = prestashop.search('products', options={'filter[reference]': '[' + reference + ']'})
for image in images:
file_name = '<path_to_images>/' + image
fd = io.open(file_name, "rb")
content = fd.read()
fd.close()
prestashop.add('/images/products/' + str(product[0]), files=[('image', file_name, content)])
print('SENT:' + image)
print('DONE:' + shop)

Python 2.7 | Insert a closing bracket for variables using RegEx

I have a file that contains:
a[0 a[1 a[2 a[3 a[4 a[5 a[6 a[7 a[8 \
a[9 a[10 a[11 a[12 a[13 a[14 a[15 a[16 \
a[17 a[18 a[19 a[20 a[21 a[22 a[23 a[24 \
a[25 a[26 a[27 a[28 a[29 a[30 a[31 b[0 b[1 \
b[2 b[3 b[4 b[5 b[6 b[7 b[8 b[9 b[10 \
b[11 b[12 b[13 b[14 b[15 b[16 b[17 b[18 \
b[19 b[20 b[21 b[22 b[23 b[24 b[25 b[26 \
b[27 b[28 b[29 b[30 b[31
I want to insert a closing bracket for each variable. The numbers can grow for future variables. How can we do it using regex?
Thanks in advance.
Using re.sub
Ex:
import re
s = """a[0 a[1 a[2 a[3 a[4 a[5 a[6 a[7 a[8 \
a[9 a[10 a[11 a[12 a[13 a[14 a[15 a[16 \
a[17 a[18 a[19 a[20 a[21 a[22 a[23 a[24 \
a[25 a[26 a[27 a[28 a[29 a[30 a[31 b[0 b[1 \
b[2 b[3 b[4 b[5 b[6 b[7 b[8 b[9 b[10 \
b[11 b[12 b[13 b[14 b[15 b[16 b[17 b[18 \
b[19 b[20 b[21 b[22 b[23 b[24 b[25 b[26 \
b[27 b[28 b[29 b[30 b[31"""
res = re.sub(r"([a-z]\[\d+)", r"\1]", s)
print res
Output:
'a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] a[11] a[12] a[13] a[14] a[15] a[16] a[17] a[18] a[19] a[20] a[21] a[22] a[23] a[24] a[25] a[26] a[27] a[28] a[29] a[30] a[31] b[0] b[1] b[2] b[3] b[4] b[5] b[6] b[7] b[8] b[9] b[10] b[11] b[12] b[13] b[14] b[15] b[16] b[17] b[18] b[19] b[20] b[21] b[22] b[23] b[24] b[25] b[26] b[27] b[28] b[29] b[30] b[31]'
You don't need to use regex for it. Just use split and join:
' '.join(map(lambda x: f'{x}]', text.strip().split()))
You can use pattern:
([a-z]\[\d+)
In Python:
import re
mystr = """
a[0 a[1 a[2 a[3 a[4 a[5 a[6 a[7 a[8 \
a[9 a[10 a[11 a[12 a[13 a[14 a[15 a[16 \
a[17 a[18 a[19 a[20 a[21 a[22 a[23 a[24 \
a[25 a[26 a[27 a[28 a[29 a[30 a[31 b[0 b[1 \
b[2 b[3 b[4 b[5 b[6 b[7 b[8 b[9 b[10 \
b[11 b[12 b[13 b[14 b[15 b[16 b[17 b[18 \
b[19 b[20 b[21 b[22 b[23 b[24 b[25 b[26 \
b[27 b[28 b[29 b[30 b[31
"""
print(re.sub(r'([a-z]\[\d+)',r'\1]',mystr))

custom sorting for find command output

I'm trying to get sorted directory/file list with unix "find" command.
# find . -type f
.
./bin
./data
./data/disks
./inc
./inc/calls
./inc/calls/show
./inc/calls/show/system
./inc/calls/show/cli
./inc/calls/show/network
./inc/calls/show/stats
./inc/calls/services
./inc/calls/services/ntp
./inc/calls/services/tsa
./inc/calls/services/webgui
./inc/calls/services/engine
./inc/calls/system
./inc/calls/change
./inc/calls/change/password
./inc/calls/change/network
./inc/calls/disk
./inc/calls/disk/encr
./inc/etc
I want to sort it like:
./inc/calls/show/system \
./inc/calls/show/cli \
./inc/calls/show/network \
./inc/calls/show/stats \
./inc/calls/services/ntp \
./inc/calls/services/tsa \
./inc/calls/services/webgui \
./inc/calls/services/engine \
./inc/calls/change/password \
./inc/calls/change/network \
./inc/calls/disk/encr \
./inc/calls/system \
./inc/calls/change \
./inc/calls/services \
./inc/calls/disk \
./inc/calls/show \
./inc/calls \
./data/disks \
./inc/etc \
./bin \
./data \
./inc
Which node (directory/file) has more child (directory/files) should be first... i want to do it with bash or python... What is the best way to do that?
Match lines containing / and prepend the number of fields to the line using / as the separator, sort on the numbers of fields and remove the count.
$ awk -F/ '/\//{print NF,$0}' file | sort -nrk1 | cut -d' ' -f2-
./inc/calls/show/system
./inc/calls/show/stats
./inc/calls/show/network
./inc/calls/show/cli
./inc/calls/services/webgui
./inc/calls/services/tsa
./inc/calls/services/ntp
./inc/calls/services/engine
./inc/calls/disk/encr
./inc/calls/change/password
./inc/calls/change/network
./inc/calls/system
./inc/calls/show
./inc/calls/services
./inc/calls/disk
./inc/calls/change
./inc/etc
./inc/calls
./data/disks
./inc
./data
./bin
I would use python and try to convert:
a/b
a/c
b/e/f
b/e/g
in something like:
{'a': {'b': {}, 'c': {}},
'b': {'e': {'f': {}, 'g': {}}},
}
To achieve this:
def add_list_to_dict(lst,d):
key, lst = lst[0], lst[1:]
if not key in d:
d[key] = {}
if lst:
add_list_to_dict(lst,d[key])
d = {}
for path in paths:
add_list_to_dict(path.split('/'),d)

python width syntax error

I am running Ubuntu with python 2.7.2.
script
python \
/home/blainer/Desktop/convert/converter.py \
/home/blainer/Desktop/convert/urban.shp \
/home/blainer/Desktop/convert/result.js \
--width 900 \
--country_name_index 4 \
--where "ISO = 'USA'" \
--codes_file /home/blainer/Desktop/convert/codes-en.tsv \
--insets '[{"codes": ["US-AK"], "width": 200, "left": 10, "top": 370}, {"codes": ["US-HI"], "width": 100, "left": 220, "top": 400}]' \
--minimal_area 4000000 \
--buffer_distance -3000 \
--simplify_tolerance 1000 \
--longtitude0 10w \
--name us
error
blainer#ubuntu:~/Desktop/convert$ python script.py
File "script.py", line 5
--width 900 \
^
SyntaxError: invalid syntax
That's not a Python script, it's a shell script that runs Python.
Name it script.sh, not .py.
Add a "shebang" line to the top: #!/bin/bash
Make it executable: chmod +x ./script.sh
Run it: blainer#ubuntu:~/Desktop/convert$ ./script.sh

Categories