Python recipes: Difference between revisions

From Wildsong
Jump to navigationJump to search
Brian Wilson (talk | contribs)
m Brian Wilson moved page Python scripting to Python recipes
Brian Wilson (talk | contribs)
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Tips and tricks ==
Here are code snippets I can't seem to keep in my head between uses.


=== Simple file reader ===
=== Simple file reader ===
Line 9: Line 9:
     if not len(line): continue # skip blank lines
     if not len(line): continue # skip blank lines
     # do stuff here
     # do stuff here
=== Redirect stdout ===
import sys
save_stdout = sys.stdout
sys.stdout = open('file', 'w')
print 'test'
sys.stdout = save_stdout


=== Writing a log ===
=== Writing a log ===
Line 15: Line 23:


  from datetime import datetime
  from datetime import datetime
 
  datetime.now() # returns an object
  datetime.now() # returns an object
  datetime.datetime(2015, 12, 2, 12, 0, 28, 8580)
  datetime.datetime(2015, 12, 2, 12, 0, 28, 8580)
 
  datetime.now().strftime("%Y-%m-%d %H:%M") # returns a formatted string
  datetime.now().strftime("%Y-%m-%d %H:%M") # returns a formatted string like '2015-12-02 12:01'
'2015-12-02 12:01'


=== Running commands ===
=== Running commands ===
 
Run a process and watch its return code.
   import subprocess
   import subprocess
   try:
   try:
     retcode = subprocess.call("mycmd" + " myarg", shell=True)
     retcode = subprocess.call("mycmd" + " myarg", shell=True)
     if retcode < 0:
     if retcode < 0:
         print >>sys.stderr, "Child was terminated by signal", -retcode
         print("Child was terminated by signal", -retcode)
     else:
     else:
         print >>sys.stderr, "Child returned", retcode
         print("Child returned", retcode)
   except OSError, e:
   except OSError as e:
     print >>sys.stderr, "Execution failed:", e
     print("Execution failed:", e)
 
Run a command and fetch its output
 
  output = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0].splitlines()
 
=== Read the contents of a spreadsheet (ODS) ===
 
PyUno is part of Apache OpenOffice.

Latest revision as of 02:17, 13 March 2023

Here are code snippets I can't seem to keep in my head between uses.

Simple file reader

with open(filename) as fp: 
  for line in fp.readlines():
    line = line.rstrip("\r\n") # remove trailing newline
    line = line.lstrip(" \t")  # remove leading whitespace
    if not len(line): continue # skip blank lines
    # do stuff here

Redirect stdout

import sys
save_stdout = sys.stdout
sys.stdout = open('file', 'w')
print 'test'
sys.stdout = save_stdout

Writing a log

Date stamps

from datetime import datetime

datetime.now() # returns an object
datetime.datetime(2015, 12, 2, 12, 0, 28, 8580)

datetime.now().strftime("%Y-%m-%d %H:%M") # returns a formatted string like '2015-12-02 12:01'

Running commands

Run a process and watch its return code.

 import subprocess
 try:
   retcode = subprocess.call("mycmd" + " myarg", shell=True)
   if retcode < 0:
       print("Child was terminated by signal", -retcode)
   else:
       print("Child returned", retcode)
 except OSError as e:
   print("Execution failed:", e)

Run a command and fetch its output

  output = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0].splitlines()

Read the contents of a spreadsheet (ODS)

PyUno is part of Apache OpenOffice.