To iterate all files, including in sub directories, use os.walk:
import os
for root, folders, files in os.walk(root_dir):
for filename in files:
print root, filename
root_dir can be "." to start from current directory, or any other path to start from.
Python 3.x3.5
If ...
Using subprocess.Popen give more fine-grained control over launched processes than subprocess.call.
Launching a subprocess
process = subprocess.Popen([r'C:\path\to\app.exe', 'arg1', '--flag', 'arg'])
The signature for Popen is very similar to the call function; however, Popen will return immedi...
vimtutor is an interactive tutorial covering the most basic aspects of text editing.
On UNIX-like system, you can start the tutorial with:
$ vimtutor
On Windows, “Vim tutor” can be found in the “Vim 7.x” directory under “All Programs” in the Windows menu.
See :help vimtutor for further details...
This assumes you have a twilio account and have purchased/reserved a phone number...
If you are using bundler add the following line to your Gemfile to include twilio-ruby in your project:
gem 'twilio-ruby'
otherwise enter gem install twilio-ruby on the command line. You might need sudo if you'...
You can create a TCP server using the socketserver library.
Here's a simple echo server.
Server side
from sockerserver import BaseRequestHandler, TCPServer
class EchoHandler(BaseRequestHandler):
def handle(self):
print('connection from:', self.client_address)
while True:...
A UDP server is easily created using the socketserver library.
a simple time server:
import time
from socketserver import BaseRequestHandler, UDPServer
class CtimeHandler(BaseRequestHandler):
def handle(self):
print('connection from: ', self.client_address)
# Get message and cli...
The vast majority of Python memory management is handled with reference counting.
Every time an object is referenced (e.g. assigned to a variable), its reference count is automatically increased. When it is dereferenced (e.g. variable goes out of scope), its reference count is automatically decreas...
EXTENDED_ARG = 145 # All opcodes greater than this have 2 operands
HAVE_ARGUMENT = 90 # All opcodes greater than this have at least 1 operands
cmp_op = ('<', '<=', '==', '!=', '>', '>=', 'in', 'not in', 'is', 'is ...
# A list of comparator id's. The indecies are used as opera...
Python is a hybrid interpreter. When running a program, it first assembles it into bytecode which can then be run in the Python interpreter (also called a Python virtual machine). The dis module in the standard library can be used to make the Python bytecode human-readable by disassembling classes, ...
To disassemble a Python module, first this has to be turned into a .pyc file (Python compiled). To do this, run
python -m compileall <file>.py
Then in an interpreter, run
import dis
import marshal
with open("<file>.pyc", "rb") as code_f:
code_f.read(8) # M...
The iloc (short for integer location) method allows to select the rows of a dataframe based on their position index. This way one can slice dataframes just like one does with Python's list slicing.
df = pd.DataFrame([[11, 22], [33, 44], [55, 66]], index=list("abc"))
df
# Out:
# 0...
Inventory is the Ansible way to track all the systems in your infrastructure. Here is a simple inventory file containing a single system and the login credentials for Ansible.
[targethost]
192.168.1.1 ansible_user=mrtuovinen ansible_ssh_pass=PassW0rd
This example creates a new file named "NewFile.txt", then writes "Hello World!" to its body. If the file already exists, CreateFile will fail and no data will be written.
See the dwCreationDisposition parameter in the CreateFile documentation if you don't want the function to fa...
Trap expressions don't have to be individual functions or programs, they can be more complex expressions as well.
By combining jobs -p and kill, we can kill all spawned child processes of the shell on exit:
trap 'jobs -p | xargs kill' EXIT
Using the timeit module from the command line:
> python -m timeit 'for x in xrange(50000): b = x**3'
10 loops, best of 3: 51.2 msec per loop
> python -m timeit 'from math import pow' 'for x in xrange(50000): b = pow(x,3)'
100 loops, best of 3: 9.15 msec per loop
The built-in ** operato...
The typing.TypeVar is a generic type factory. It's primary goal is to serve as a parameter/placeholder for generic function/class/method annotations:
import typing
T = typing.TypeVar("T")
def get_first_element(l: typing.Sequence[T]) -> T:
"""Gets the first ele...
Enum constants are instantiated when an enum is referenced for the first time. Therefore, that allows to implement Singleton software design pattern with a single-element enum.
public enum Attendant {
INSTANCE;
private Attendant() {
// perform some initialization routine
...
To get basic information about a DataFrame including the column names and datatypes:
import pandas as pd
df = pd.DataFrame({'integers': [1, 2, 3],
'floats': [1.5, 2.5, 3],
'text': ['a', 'b', 'c'],
'ints with None': [1, None, 3]})
...