Skip to content

robsmith1776/python-tips

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 

Repository files navigation

Python tips

List of python tips

  1. Use the Python 3 print function in Python 2
  2. Reverse a string or list
  3. Reverse by custom step
  4. List slice assignment
  5. Copy a list
  6. Create a list out of string
  7. Check file or directory exists
  8. Call an external command
  9. Capture output from an external command
  10. Ternary conditional operator
  11. else in for loop
  12. Print to file
  13. Writing to file
  14. Reading from file
  15. Iterating over lines in a file

Use the Python 3 print function in Python 2

# For Python 2, using the print() function from Python 3 helps future compatibility.
# It also allows better syntax when printing to files, or changing the line ending.
from __future__ import print_function

print('Python', 'Tips', sep='-', end='')
import sys
print('There was an error!', file=sys.stderr)
with open(filename, 'w') as f:
    print('Python!', file=f)

Reverse a string or list

my_list = ['a','b','c','d','e']
reverse_list = my_list[::-1]

my_string = "python"
print my_string[::-1]

Reverse by custom step

my_list = [1,2,3,4,5,6]
reverse_list = my_list[::-2]
# output : [6,4,2]

List slice assignment

  my_list = ['a','b','c','d','e']
  my_list[3:] = ['x','y','z']
  print my_list
  #output : ['a', 'b', 'c', 'x', 'y', 'z']

Copy a List

a = [1, 2, 3, 4]
''' Considered as one of the weirdest syntax to copy elements.'''
a_copy = a[:]

''' Another way of copying a list.'''
a_copy2 = list()
a_copy2.extend(a) # output a_copy2 = [1, 2, 3, 4]

Create a list out of string

data = "abcd"
data_list2 = list(data)  # OutPut: data_list = ['a', 'b', 'c', 'd'] 

Check file or directory exists

os.path.isfile used only for files

import os.path
os.path.isfile(filename) # True if file exists
os.path.isfile(dirname) # False if directory exists

os.path.exists used for both files and directories

import os.path
os.path.exists(filename) # True if file exists
os.path.exists(dirname) #True if directory exists

pathlib.Path method (included in Python 3+, installable with pip for Python 2)

from pathlib import Path
Path(filename).exists()

Call an external command

from subprocess import call
call(['ls,'-l'])

Capture output from an external command

from subprocess import check_output
output = check_output(['ls', '/usr/bin'])

You can also capture stderr at the same time.

from subprocess import check_output, STDOUT, CalledProcessError
try:
    output = check_output(['ls', '/nonexistent'], stderr=STDOUT)
except CalledProcessError:
    print('Error: {}'.format(output.decode()))
else:
    print('Success: {}'.format(output.decode()))

Ternary conditional operator

print('True' if True else 'False')

else in for loop

An else block is executed if the loop body is not terminated by a break statement :

for i in range(5):
    print('Here we go!')
    if i == 2:
        break
else:
    print('There we went.')
else :
    print('String is empty')
# output : Here we go!
#          Here we go!
#          Here we go!

This for loop will get all the way to else:

for i in range(5):
    print('Here we go!')
    if i == 10:
        break
else:
    print('There we went.')
# output : Here we go!
#          Here we go!
#          Here we go!
#          Here we go!
#          Here we go!
#          There we went.

Print to file

# Using `with` and `open`, the file will be closed when the `with` block finishes.
with open(filename, 'w') as outputfile:
    print('Python!', file=outputfile)

Writing to file

with open(filename, 'a') as inputfile:
    inputfile.write('Python!\n')

Reading from file

with open('file.txt', 'r') as inputfile:
    data = inputfile.read()

Iterating over lines in a file

When iterating over lines in a file, this method uses less memory because it reads one line at a time.

with open(filename, 'r') as inputfile:
    for line in inputfile:
        # Lines have a '\n' at the end, like inputfile.readlines().
        print(line, end='')

About

List of python tips

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published