Re: tail
On 19May2022 19:50, Marco Sulla wrote: >On Wed, 18 May 2022 at 23:32, Cameron Simpson wrote: >> You're measuring different things. timeit() tries hard to measure >> just >> the code snippet you provide. It doesn't measure the startup cost of the >> whole python interpreter. Try: >> >> time python3 your-tail-prog.py /home/marco/lorem.txt > >Well, I'll try it, but it's not a bit unfair to compare Python startup with C? Yes it is. But timeit goes the other way and only measures the code. Admittedly I'd expect a C tail to be pretty quick anyway. But... even a small C programme often has a surprising degree of startup these days, what with dynamicly linked libraries, locale lookups etc etc. Try: strace tail some-empty-file.txt and see what goes on. If you're on slow hard drives what is cached in memory and what isn't can have a surprising effect. Cheers, Cameron Simpson -- https://mail.python.org/mailman/listinfo/python-list
Re: Python & nmap
On 2022-05-19 20:28, ^Bart wrote: You forgot the second line (after 'import nmap' and before 'nm.scan()'): nm = nmap.PortScanner() import nmap nm = nmap.PortScanner() nm.scan(hosts='192.168.205.0/24', arguments='-n -sP -PE -PA21,23,80,3389') hosts_list = [(x, nm[x]['status']['state']) for x in nm.all_hosts()] for host, status in hosts_list: print('{0}:{1}'.host) And the result is: Traceback (most recent call last): File "/home/gabriele/Documenti/Python/nmap.py", line 1, in import nmap File "/home/gabriele/Documenti/Python/nmap.py", line 2, in nm = nmap.PortScanner() AttributeError: partially initialized module 'nmap' has no attribute 'PortScanner' (most likely due to a circular import) >>> I'm using the IDLE Shell 3.9.2 on Debian Bullseye+KDE, if I write the script from command line it works! When you installed nmap it would've been installed into site-packages, but the traceback says "/home/gabriele/Documenti/Python/nmap.py", which suggests to me that you called your script "nmap.py", so it's shadowing what you installed and is actually trying to import itself! -- https://mail.python.org/mailman/listinfo/python-list
Re: Python & nmap
Opbservations worth considering 1) could possibly be handled by a simple bash script (My bash skills are not great So i would probably still go python myself anyway) Like what I wrote in my last reply to another user now I need to start this work asap so maybe I'll start to write a rough bash script and I hope to manage it when I'll have free time on Python! 2) Instead of checking availability just try to send & react appropriately if it fails (Ask for forgiveness not permission), the client could fail after test or during transfer anyway so you will still need this level of error checking Sadly true... I didn't think about it but maybe I could find a solution in bash script... Thanks for your reply! :) ^Bart -- https://mail.python.org/mailman/listinfo/python-list
Re: Python & nmap
You forgot the second line (after 'import nmap' and before 'nm.scan()'): nm = nmap.PortScanner() import nmap nm = nmap.PortScanner() nm.scan(hosts='192.168.205.0/24', arguments='-n -sP -PE -PA21,23,80,3389') hosts_list = [(x, nm[x]['status']['state']) for x in nm.all_hosts()] for host, status in hosts_list: print('{0}:{1}'.host) And the result is: Traceback (most recent call last): File "/home/gabriele/Documenti/Python/nmap.py", line 1, in import nmap File "/home/gabriele/Documenti/Python/nmap.py", line 2, in nm = nmap.PortScanner() AttributeError: partially initialized module 'nmap' has no attribute 'PortScanner' (most likely due to a circular import) >>> I'm using the IDLE Shell 3.9.2 on Debian Bullseye+KDE, if I write the script from command line it works! ^Bart -- https://mail.python.org/mailman/listinfo/python-list
Re: Python & nmap
Maybe it could be a good idea to look at Ansible for copying the Files to all the hosts, because that is one thing ansible is made for. I didn't know it... thanks to share it but... I should start to study it and I don't have not enought free time... but maybe in the future I'll do it! :) For the nmap part: Ansible does not have a module for that (sadly) but is very extensible, so if you start developing something like that in Python, you could as well write an ansible module and combine both, because Ansible itself is written in Python. Ah ok, maybe now I just start to write a bash script because I need to start this work asap, when I'll have one minute I'll try to move the script in Python and after it I could "upload" the work on Ansible! :) Cheers Lars Thanks! ^Bart -- https://mail.python.org/mailman/listinfo/python-list
Re: Issue sending data from C++ to Python
Pablo Martinez Ulloa wrote at 2022-5-18 15:08 +0100: >I have been using your C++ Python API, in order to establish a bridge from >C++ to Python. Do you know `cython`? It can help very much in the implementation of bridges between Python and C/C++. -- https://mail.python.org/mailman/listinfo/python-list
Re: tail
On Wed, 18 May 2022 at 23:32, Cameron Simpson wrote: > > On 17May2022 22:45, Marco Sulla wrote: > >Well, I've done a benchmark. > timeit.timeit("tail('/home/marco/small.txt')", globals={"tail":tail}, > number=10) > >1.5963431186974049 > timeit.timeit("tail('/home/marco/lorem.txt')", globals={"tail":tail}, > number=10) > >2.5240604374557734 > timeit.timeit("tail('/home/marco/lorem.txt', chunk_size=1000)", > globals={"tail":tail}, number=10) > >1.8944984432309866 > > This suggests that the file size does not dominate uour runtime. Yes, this is what I wanted to test and it seems good. > Ah. > _Or_ that there are similar numbers of newlines vs text in the files so > reading similar amounts of data from the end. If the "line desnity" of > the files were similar you would hope that the runtimes would be > similar. No, well, small.txt has very short lines. Lorem.txt is a lorem ipsum, so really long lines. Indeed I get better results tuning chunk_size. Anyway, also with the default value the performance is not bad at all. > >But the time of Linux tail surprise me: > > > >marco@buzz:~$ time tail lorem.txt > >[text] > > > >real0m0.004s > >user0m0.003s > >sys0m0.001s > > > >It's strange that it's so slow. I thought it was because it decodes > >and print the result, but I timed > > You're measuring different things. timeit() tries hard to measure just > the code snippet you provide. It doesn't measure the startup cost of the > whole python interpreter. Try: > > time python3 your-tail-prog.py /home/marco/lorem.txt Well, I'll try it, but it's not a bit unfair to compare Python startup with C? > BTW, does your `tail()` print output? If not, again not measuring the > same thing. > [...] > Also: does tail(1) do character set / encoding stuff? Does your Python > code do that? Might be apples and oranges. Well, as I wrote I also timed timeit.timeit("print(tail('/home/marco/lorem.txt').decode('utf-8'))", globals={"tail":tail}, number=10) and I got ~36 seconds. > If you have the source of tail(1) to hand, consider getting to the core > and measuring `time()` immediately before and immediately after the > central tail operation and printing the result. IMHO this is a very good idea, but I have to find the time(). Ahah. Emh. -- https://mail.python.org/mailman/listinfo/python-list
Invoice
[image: Invoice.jpg] .. -- https://mail.python.org/mailman/listinfo/python-list
Re: Python & nmap
# scp "my_file" root@192.168.205.x/my_directory Maybe it could be a good idea to look at Ansible for copying the Files to all the hosts, because that is one thing ansible is made for. For the nmap part: Ansible does not have a module for that (sadly) but is very extensible, so if you start developing something like that in Python, you could as well write an ansible module and combine both, because Ansible itself is written in Python. Cheers Lars -- Lars Liedtke Software Entwickler Phone: Fax:+49 721 98993- E-mail: l...@solute.de solute GmbH Zeppelinstraße 15 76185 Karlsruhe Germany Marken der solute GmbH | brands of solute GmbH billiger.de | Shopping.de Geschäftsführer | Managing Director: Dr. Thilo Gans, Bernd Vermaaten Webseite | www.solute.de Sitz | Registered Office: Karlsruhe Registergericht | Register Court: Amtsgericht Mannheim Registernummer | Register No.: HRB 110579 USt-ID | VAT ID: DE234663798 Informationen zum Datenschutz | Information about privacy policy http://solute.de/ger/datenschutz/grundsaetze-der-datenverarbeitung.php -- https://mail.python.org/mailman/listinfo/python-list
Re: Python & nmap
On Wed, 18 May 2022 23:52:05 +0200, ^Bart wrote: > Hi guys, > > i need to copy some files from a Debian client to all linux embedded > clients. > > I know the linux commands like: > > # scp "my_file" root@192.168.205.x/my_directory > > But... I have to upload 100 devices, I have a lan and a dhcp server just > for this work and I'd like to make a script by Python which can: > > 1) To scan the lan 2) To find which ips are "ready" > 3) To send files to all of the "ready" clients 4) After I see on the > display of these clients the successfully update I remove from the lan > them and I put them to the box to send them to our customers. > > I found https://pypi.org/project/python-nmap/ and I followed the line > "To check the network status" but... it doesn't work. > > THE INPUT > - > import nmap nm.scan(hosts='192.168.205.0/24', arguments='-n -sP -PE > -PA21,23,80,3389') > hosts_list = [(x, nm[x]['status']['state']) for x in nm.all_hosts()] > for host, status in hosts_list: > print('{0}:{1}'.host) > > THE OUTPUT > - > Traceback (most recent call last): >File "/home/gabriele/Documenti/Python/nmap.py", line 1, in > import nmap >File "/home/gabriele/Documenti/Python/nmap.py", line 2, in > nm.scan(hosts='192.168.205.0/24', arguments='-n -sP -PE > -PA21,23,80,3389') > NameError: name 'nm' is not defined > > Regards. > ^Bart Opbservations worth considering 1) could possibly be handled by a simple bash script (My bash skills are not great So i would probably still go python myself anyway) 2) Instead of checking availability just try to send & react appropriately if it fails (Ask for forgiveness not permission), the client could fail after test or during transfer anyway so you will still need this level of error checking -- QOTD: "What women and psychologists call `dropping your armor', we call "baring your neck." -- https://mail.python.org/mailman/listinfo/python-list