wdx1992828 发表于 2017-4-22 14:34:17

Google python copyspecial.py(python 2.7)

#!/usr/bin/python

import sys
import re
import os
import shutil
import commands
import zipfile

"""Copy Special exercise
"""

# +++your code here+++
# Write functions and modify main() to call them

def get_specials(dir):
com='ls '+ dir
status,output=commands.getstatusoutput(com)
specials=[]
for special in output.split():
    if re.findall(r'__(\w+)__',special):
      specials.append(special)
return specials

def to_dir(dir,srcs):
if not os.path.exists(dir):
    os.mkdir(dir)
for src in srcs:
    shutil.copy(src,dir)

#s1:
def to_zip(zf,srcs):
f=zipfile.ZipFile(zf,'w')
for src in srcs:
    f.write(src)
f.close()

#s2
def to_zip(zf,srcs):

com='zip '+ zf +' '+' '.join(srcs)
print com
status,output=commands.getstatusoutput(com)
if not status:
    print 'zip successed!'

def main():
# This basic command line argument parsing code is provided.
# Add code to call your functions below.

# Make a list of command line arguments, omitting the element
# which is the script itself.
args = sys.argv
if not args:
    print "usage: [--todir dir][--tozip zipfile] dir ";
    sys.exit(1)

# todir and tozip are either set from command line
# or left as the empty string.
# The args array is left just containing the dirs.
todir = ''
if args == '--todir':
    todir = args
    del args

tozip = ''
if args == '--tozip':
    tozip = args
    del args

if len(args) == 0:
    print "error: must specify one or more dirs"
    sys.exit(1)

specials=get_specials(args)
if todir:
    to_dir(todir,specials)
if tozip:
    to_zip(tozip,specials)

if __name__ == "__main__":
main()
页: [1]
查看完整版本: Google python copyspecial.py(python 2.7)