Linux howto’s : plein d’astuces sur Linux
Vous voulez apprendre plein de petites astuces qui vont vous faire gagner énormément de temps sur Linux ?
Cliquez ici : tecmint !
Il y en a un autre excellent ici sur websauvage !
Vous voulez apprendre plein de petites astuces qui vont vous faire gagner énormément de temps sur Linux ?
Cliquez ici : tecmint !
Il y en a un autre excellent ici sur websauvage !
import datetime
msg = "Test de log"
dt = datetime.datetime.now()
with open("monlogfile.log", 'a+') as f:
f.write('{:02}:{:02} - {}\n'.format(
dt.hour, dt.minute, msg))
x, y, z = 0, 1, 0
if x == 1 or y == 1 or z == 1:
print('ok')
if 1 in (x, y, z):
print('ok')
# si l'un d'eux n'est pas vide:
if x or y or z:
print('ok')
if any((x, y, z)):
print('ok')
»»» xs = {'a': 4, 'b': 3, 'c': 2, 'd': 1}
»»» sorted(xs.items(), key=lambda x: x[1])
»»» import operator
»»» sorted(xs.items(), key=operator.itemgetter(1))
»»» import timeit
»»» timeit.timeit('"-".join(str(n) for n in range(100))',
number=10000)
0.3412662749997253
»»» timeit.timeit('"-".join([str(n)
for n in range(100)])',
number=10000)
0.2996307989997149
»»» timeit.timeit('"-".join(map(str, range(100)))',
number=10000)
0.24581470699922647
# namedtup1e est une classe : »»» from collections import namedtuple »»» Car = namedtup1e('Car' , 'color mileage') # Our new "Car" class works as expected: »»» my_car = Car('red', 3812.4) »»» my_car.color 'red' »»» my_car.mileage 3812.4 # Une belle représentation repr avec : »»» my_car Car(color='red' , mileage=3812.4) # Comme les tuples, les namedtuples sont immuables : »»» my_car.color = 'blue' AttributeError: "can't set attribute"
is
» vs « ==
» :
»»» a = [1, 2, 3] »»» b = a »»» a is b True »»» a == b True »»» c = list(a) »»» a == c True »»» a is c False
– is
est True
si deux variables pointent vers le même objet ;
– ==
est True
si les variables contenues dans les objets sont identiques.
»»» Code code code
Learning Python in minutes
https://learnxinyminutes.com/docs/python3/
How to Send an Email With Python
https://dbader.org/blog/python-send-email
The Python range() Function
https://realpython.com/courses/python-range-function/
Python sleep(): How to Add Time Delays to Your Code
https://realpython.com/python-sleep/
Cool New Features in Python 3.8
https://realpython.com/python38-new-features/
Python Decorators From the Ground Up
https://pabloariasal.github.io/python-decorators-from-the-ground-up/
How — and why — you should use Python Generators
https://medium.freecodecamp.org/how-and-why-you-should-use-python-generators-f6fb56650888
Download information on all your gmail emails and the body text to either csv or json. I developed this to download my 100K + emails stored over several years on gmail.
https://teklern.blogspot.fr/2017/11/download-all-your-email-information.html
Memoization in Python: How to Cache Function Results
https://dbader.org/blog/python-memoization
Implementing a Neural Network from Scratch in Python – An Introduction
https://www.datasciencecentral.com/profiles/blogs/implementing-a-neural-network-from-scratch-in-python-an
—–
—–
https://cloudxlab.com/blog/numpy-pandas-introduction
https://www.peterbe.com/plog/fastest-way-to-uniquify-a-list-in-python-3.6
8 Python Modules For Files Handling
http://devarea.com/8-python-modules-for-files-handling/
How do async for loops work in Python? Using asynchronous for loops in Python
https://quentin.pradet.me/blog/using-asynchronous-for-loops-in-python.html
How to use Python and Flask to build a web app — an in-depth tutorial
https://medium.freecodecamp.org/how-to-use-python-and-flask-to-build-a-web-app-an-in-depth-tutorial-437dbfe9f1c6
Framework ultra simple pour faire des micro-services en Json
Falcon is a bare-metal Python web API framework for building very fast app backends and microservices.
http://falconframework.org
How to break a CAPTCHA system in 15 minutes with Machine Learning
https://medium.com/@ageitgey/how-to-break-a-captcha-system-in-15-minutes-with-machine-learning-dbebb035a710
Python Exceptions: An Introduction
https://realpython.com/python-exceptions/
Python Metaclasses
https://realpython.com/python-metaclasses/
Building a Simple Web App with Bottle, SQLAlchemy, and the Twitter API
https://realpython.com/blog/python/building-a-simple-web-app-with-bottle-sqlalchemy-twitter-api/
Python – Regular Expressions Practical Guide
http://devarea.com/python-regular-expressions-practical-guide/#.Wki2nN_iZhE
A fast high-level screen scraping and web crawling framework.
https://scrapy.org
A fast high-level screen scraping and web crawling framework.
https://pyfiddle.io/
Python Web scraping
http://scrapingauthority.com/python-scrapy-mysql-and-matplotlib-to-gain-web-data-insights/
Tips for writing extremely short Python programs
Extremely short Python programs (aka « golfing »)
Instagramming with Python for Data Analysis
The guide
Easy Python logging with daiquiri
The three things you need to know about packaging are:
A safe GitHub workflow with Pastamaker
The definitive guide to Python exceptions
How do you write your Python tests?
The unittest module in Python is the natural entry point to start writing test, and it’s really easy to use. It’s not really harder than using assert, and it will provide much nicer output when run. Once you get on that road, there’s a lot of other nice modules you can start using, such pytest, coverage, nose or mock. And if your project is hosted on places such as GitHub, it’s really easy to use services such as Travis to automate tests runs.
A simple filtering syntax tree in Python
Stop merging your pull requests manually
How I stopped merging broken code
More GitHub workflow automation
Je n’ai pas été bien loin, vous trouverez la version anglaise ici.
:%s/mot/<c-r><c-a>/g
Remplacer chaque occurrence de ‘mot’ avec le mot sous le curseur (le mot est délimité par des espaces ou des retours à la ligne).
<c-r><c-a>
signifie qu’il faut appuyer sur Ctrl et R puis sur Ctrl et A.
Le mot sous le curseur sera automatiquement inséré dans la ligne de commande exactement comme il apparaît à l’écran.
Le côté génial, c’est que vous pouvez enregistrer cela dans une macro et il se souviendra du principe !
Exemple concret : j’ai une centaine de partenaires auquels je dois appliquer la même opération SQL. Voilà comment je me suis servi de la fonctionnalité :
Ensuite, une fois la macro enregistrée, j’ai tapé « 100@a » = jouer 100 fois la macro « a ».
Et voilà.
Beaucoup de temps de gagné !
Il arrive parfois que lorsqu’on fait un scp, ça ne fonctionne pas, et on peut lire quelque chose comme :
>> scp root@olivierpons.fr:/var/www/html/pysoko.tar.bz2 .
root@olivierpons.fr's password:
C0644 129502 pysoko.tar.bz2
>>
Dans cet exemple, je veux récupérer le fichier :
pysoko.tar.bz2
qui est sur le PC distant dans le répertoire
/var/www/html/
sachant que le PC distant est nommé :
olivierpons.fr
.
En fait le problème est super simple : lorsque le programme scp
se connecte pour faire la copie, un shell du distant nommé olivierpons.fr
est ouvert, et par conséquent tout ce qu’il y a dans la configuration du shell est exécuté, donc tout ce qu’il y a dans le fichier de configuration du shell .bashrc
.
Pour faire simple, si vous avez fait un « echo
» quelque part dans le fichier de configuration du shell .bashrc
, changez le par tty -s && echo "
.
L’explication est dans ce site génial, qui explique tout sur le SCP, encore mieux que mon article, qui sort pourtant numéro un sur google France lorsqu’on tape scp linux
…
Le monde est injuste !