User Tools

Site Tools


python:pythonbasicexamples

This is an old revision of the document!


Python basic examples

Python processing file and directory

os package

  • Executing a shell command
    os.system()
  • Get the users environment
    os.environ()
  • Returns the current working directory
    os.getcwd()
  • Return a list of the entries in the directory given by path
    os.listdir(path)
  • Create a directory named path with numeric mode mode
    os.mkdir(path)
  • Recursive directory creation function
    os.makedirs(path)
  • Remove (delete) the file path
    os.remove(path)
  • Remove directories recursively
    os.removedirs(path)
  • Rename the file or directory src to dst
    os.rename(src, dst)
  • Remove (delete) the directory path
    os.rmdir(path)

os.path

os.path basic functions

  • split:
    import os
    from urlparse import urlparse
     
    filename = "E:\\do-choi\\do-choi-giay\\the-hinh-chu-so-vua-hoc-vua-choi.html"
     
    print "full filename", filename
    print "using", os.name, "..."
    print "split", "=>", os.path.split(filename)
    print "splitdrive", "=>", os.path.splitdrive(filename)
    print "splitext", "=>",os.path.splitext(filename)
    print "splitunc", "=>",os.path.splitunc(filename)

    output:

    full filename E:\do-choi\do-choi-giay\the-hinh-chu-so-vua-hoc-vua-choi.html
    using nt ...
    split => ('E:\\do-choi\\do-choi-giay', 'the-hinh-chu-so-vua-hoc-vua-choi.html')
    splitdrive => ('E:', '\\do-choi\\do-choi-giay\\the-hinh-chu-so-vua-hoc-vua-choi.html')
    splitext => ('E:\\do-choi\\do-choi-giay\\the-hinh-chu-so-vua-hoc-vua-choi', '.html')
    splitunc => ('', 'E:\\do-choi\\do-choi-giay\\the-hinh-chu-so-vua-hoc-vua-choi.html')
  • using os.path to check what a filename represents
    import os
     
    FILES = (
        os.curdir,
        "/",
        "file",
        "/file",
        "samples",
        "samples/sample.jpg",
        "directory/file",
        "../directory/file",
        "/directory/file"
        )
     
    for file in FILES:
        print file, "=>",
        if os.path.exists(file):
            print "EXISTS",
        if os.path.isabs(file):
            print "ISABS",
        if os.path.isdir(file):
            print "ISDIR",
        if os.path.isfile(file):
            print "ISFILE",
        if os.path.islink(file):
            print "ISLINK",
        if os.path.ismount(file):
            print "ISMOUNT",
        print

    output:

    . => EXISTS ISDIR
    / => EXISTS ISABS ISDIR ISMOUNT
    file =>
    /file => ISABS
    samples => EXISTS ISDIR
    samples/sample.jpg => EXISTS ISFILE
    directory/file =>
    ../directory/file =>
    /directory/file => ISABS

os.path custom examples

  • Using os.path to handle filename
    import os
    import re
     
    filename = "my/little/pony.txt"
     
    print "using", os.name, "..."
    print "split", "=>", os.path.split(filename)
    print "splitext", "=>", os.path.splitext(filename)
    print "dirname", "=>", os.path.dirname(filename)
    print "basename", "=>", os.path.basename(filename)
    print "join", "=>", os.path.join(os.path.dirname(filename),
                                     os.path.basename(filename))
    print "realpath", os.path.realpath(filename)
    print "abspath", os.path.abspath(filename)
    print "rename filename to ", re.sub(r'\.txt', '', filename) + '.html'

    ⇒ output

    using nt ...
    split => ('my/little', 'pony.txt')
    splitext => ('my/little/pony', '.txt')
    dirname => my/little
    basename => pony.txt
    join => my/little\pony.txt
    realpath E:\backup\GoogleDrive\projects\python\my\little\pony.txt
    abspath E:\backup\GoogleDrive\projects\python\my\little\pony.txt
    rename filename to  my/little/pony.html
  • get normal path
    import os
     
    filename = "E:\\do-choi\\do-choi-giay\\the-hinh-chu-so-vua-hoc-vua-choi.html"
     
    print "full filename", filename
    print "basename", os.path.basename(filename)
    print "dirname", os.path.dirname(filename)
    print "splitdrive", "=>", os.path.splitdrive(filename)
    fullpathname = os.path.dirname(filename)
    pathname = os.path.splitdrive(fullpathname)[1]
    print "pathname = ", pathname
    normalpath = pathname[1:]
    print "normalpath = ", normalpath

    output:

    full filename E:\do-choi\do-choi-giay\the-hinh-chu-so-vua-hoc-vua-choi.html
    basename the-hinh-chu-so-vua-hoc-vua-choi.html
    dirname E:\do-choi\do-choi-giay
    splitdrive => ('E:', '\\do-choi\\do-choi-giay\\the-hinh-chu-so-vua-hoc-vua-choi.html')
    pathname =  \do-choi\do-choi-giay
    normalpath =  do-choi\do-choi-giay
  • urlparse
    import os
    from urlparse import urlparse
     
    url = "http://shop.babies.vn/do-choi/do-choi-giay/the-hinh-chu-so-vua-hoc-vua-choi.html"
    o = urlparse(url)
    print o
    filename = o.path
    print filename
    print "split", "=>", os.path.split(filename)
    print "splitext", "=>", os.path.splitext(filename)
    print "dirname", "=>", os.path.dirname(filename)
    print "basename", "=>", os.path.basename(filename)
    print "join", "=>", os.path.join(os.path.dirname(filename),
                                     os.path.basename(filename))
    print "realpath", os.path.realpath(filename)
    print "abspath", os.path.abspath(filename)

    output:

    ParseResult(scheme='http', netloc='shop.babies.vn', path='/do-choi/do-choi-giay/the-hinh-chu-so-vua-hoc-vua-choi.html', params='', query='', fragment='')
    /do-choi/do-choi-giay/the-hinh-chu-so-vua-hoc-vua-choi.html
    split => ('/do-choi/do-choi-giay', 'the-hinh-chu-so-vua-hoc-vua-choi.html')
    splitext => ('/do-choi/do-choi-giay/the-hinh-chu-so-vua-hoc-vua-choi', '.html')
    dirname => /do-choi/do-choi-giay
    basename => the-hinh-chu-so-vua-hoc-vua-choi.html
    join => /do-choi/do-choi-giay\the-hinh-chu-so-vua-hoc-vua-choi.html
    realpath E:\do-choi\do-choi-giay\the-hinh-chu-so-vua-hoc-vua-choi.html
    abspath E:\do-choi\do-choi-giay\the-hinh-chu-so-vua-hoc-vua-choi.html

Get all files and directories in current directory

  • using os.path.walk list all file in current directory and all subdirectories
    import os
     
    def gotodir(arg, directory, files):
        for file in files:
            print file
     
    os.path.walk(".", gotodir, "")

    Output

    .project
    .pydevproject
    conent.tpl
    index.html
    parser.py
    test.py
  • using os.path.walk list all full filename in current directory and all subdirectories
    import os
     
    def gotodir(arg, directory, files):
        for file in files:
            fullfilename = os.path.join(directory,file)
            print fullfilename
     
    os.path.walk(".", gotodir, "")
  • Find all files with extension “.py”:
    import os
     
    def gotodir(arg, directory, files):
        for file in files:
            extName = os.path.splitext(file)[1];
            if extName == '.py':
                fullfilename = os.path.join(directory,file)
                print fullfilename
     
    os.path.walk(".", gotodir, "")

Get Path of execute file

import os
 
fullpathexecute = sys.argv[0]
pathofexecute = os.path.split(fullpathexecute)[0]
print pathofexecute

Read and Update File

with open(filename, "rb") as f:
   content = f.read()
if content != "":
   #content = content.replace(oldstring, newstring)
   with open(filename, "wb") as f:
      f.write(content)
python/pythonbasicexamples.1582732512.txt.gz · Last modified: 2022/10/29 16:15 (external edit)