½ñÌìͬʽÐÎÒ±àдһ¸öshell½Å±¾¡£»°Ëµ£¬ËäÈ»ÎÒÊÜ*nixµÄÓ°ÏìÉõÉµ«ÊǶÔÓÚ*nix ÀïËæ´¦¿É¼ûµÄsh½Å±¾È´ÊÇÌÖÑáÖ®¼«¡£ÎªÊ²Ã´ÌÖÑáÄØ£¿Ê×ÏÈÊÇÒòΪsh½Å±¾ÄÇĪÃûÆäÃîµÄÓï·¨£¬¸Ð¾õ¾ÍÏñËæдËæÈӵijÌÐò£¬ÍêȫûÓÐÈκÎÃÀ¸Ð¿ÉÑÔ¡£Æä´ÎÊÇsh½Å±¾µÄ´¦ÀíÄÜÁ¦»¹ÊDZȽÏÈõµÄ£¬ÔÚÎı¾´¦Àí¡¢XML´¦Àí»¹ÓÐÍøÂç±à³Ì·½Ã棬»ù±¾É϶¼Òª½èÖúÓÚperl,awkµÈÒ»¶Ñ³ÌÐò¡£ÎÒ¶ÔÕâЩ³ÌÐòÒ²ÊDz»´óϲ»¶µÄ£¬¿öÇÒѧϰµÚÈý·½Èí¼þ×ÜҪʱ¼ä£¬»¹²»È綼ÓÃpythonºÃÁË¡£
ÄÇ£¬python¿ÉÒÔ×öshell½Å±¾Â𣿠Ê×ÏȽéÉÜÒ»¸öº¯Êý£º
os.system(command)
Õâ¸öº¯Êý¿ÉÒÔµ÷ÓÃshellÔËÐÐÃüÁîÐÐcommand²¢ÇÒ·µ»ØËüµÄ·µ»ØÖµ¡£ÊÔÒ»ÏÂÔÚ pythonµÄ½âÊÍÆ÷ÀïÊäÈëos.system(¡±ls -l¡±)£¬¾Í¿ÉÒÔ¿´µ½¡±ls¡±ÁгöÁ˵±Ç°Ä¿Â¼ÏµÄÎļþ¡£¿ÉÒÔ˵£¬Í¨¹ýÕâ¸öº¯Êý£¬python¾ÍÓµÓÐÁËshellµÄËùÓÐÄÜÁ¦¡£ºÇºÇ¡£¡£²»¹ý£¬Í¨³£ÕâÌõÃüÁî²»ÐèÒªÓõ½¡£ÒòΪshell³£ÓõÄÄÇЩÃüÁîÔÚpythonÖÐͨ³£ÓжÔÓ¦¶øÇÒͬÑù¼ò½àµÄд·¨¡£
shellÖÐ×î³£ÓõÄÊÇlsÃüÁpython¶ÔÓ¦µÄд·¨ÊÇ£ºos.listdir(dirname)£¬Õâ¸öº¯Êý·µ»Ø×Ö·û´®ÁÐ±í£¬ÀïÃæÊÇËùÓеÄÎļþÃû£¬²»¹ý²»°üº¬¡±.¡±ºÍ¡±..¡±¡£Èç¹ûÒª±éÀúÕû¸öĿ¼µÄ»°¾Í»á±È½Ï¸´ÔÓÒ»µã¡£ÎÒÃǵÈÏÂÔÙ˵°É¡£ÏÈÔÚ½âÊÍÆ÷ÀïÊÔһϣº
>>> os.listdir(¡±/¡±)
[¡¯tmp¡¯, ¡®misc¡¯, ¡®opt¡¯, ¡®root¡¯, ¡®.autorelabel¡¯, ¡¯sbin¡¯, ¡¯srv¡¯, ¡®.autofsck¡¯, ¡®mnt¡¯, ¡®usr¡¯, ¡®var¡¯, ¡®etc¡¯, ¡¯selinux¡¯, ¡®lib¡¯, ¡®net¡¯, ¡®lost found¡¯, ¡¯sys¡¯, ¡®media¡¯, ¡®dev¡¯, ¡®proc¡¯, ¡®boot¡¯, ¡®home¡¯, ¡®bin¡¯]
¾ÍÏñÕâÑù£¬½ÓÏÂÈ¥ËùÓÐÃüÁ¿ÉÒÔÔÚpythonµÄ½âÊÍÆ÷ÀïÖ±½ÓÔËÐйۿ´½á¹û¡£
¶ÔÓ¦ÓÚcpÃüÁîµÄÊÇ£ºshutil.copy(src,dest)£¬Õâ¸öº¯ÊýÓÐÁ½¸ö²ÎÊý£¬²ÎÊýsrcÊÇÖ¸Ô´ÎļþµÄÃû×Ö£¬²ÎÊýdestÔòÊÇÄ¿±êÎļþ»òÕßÄ¿±êĿ¼µÄÃû×Ö¡£ Èç¹ûdestÊÇÒ»¸öĿ¼Ãû£¬¾Í»áÔÚÄǸöĿ¼Ï´´½¨Ò»¸öÏàͬÃû×ÖµÄÎļþ¡£Óëshutil.copyº¯ÊýÏàÀàËƵÄÊÇ shutil.copy2(src,dest)£¬²»¹ýcopy2»¹»á¸´ÖÆ×îºó´æȡʱ¼äºÍ×îºó¸üÐÂʱ¼ä¡£
²»¹ý£¬shellµÄcpÃüÁ¿ÉÒÔ¸´ÖÆĿ¼£¬pythonµÄshutil.copyÈ´²»ÐУ¬µÚÒ»¸ö²ÎÊýÖ»ÄÜÊÇÒ»¸öÎļþ¡£ÕâÔõô°ì£¿Æäʵ£¬python»¹Óиöshutil.copytree(src,dst[,symlinks]) ¡£²ÎÊý¶àÁËÒ»¸ösymlinks£¬ËüÊÇÒ»¸ö²¼¶ûÖµ£¬Èç¹ûÊÇTrueµÄ»°¾Í´´½¨·ûºÅÁ´½Ó¡£
Òƶ¯»òÕßÖØÃüÃûÎļþºÍĿ¼ÄØ£¿¹À¼Æ±»´ÏÃ÷µÄÅóÓѲµ½ÁË£¬shutil.move(src,dst)£¬ºÇºÇ¡£¡£ÓëmvÃüÁîÀàËÆ£¬Èç¹ûsrcºÍdstÔÚͬһ¸öÎļþϵͳÉÏ£¬shutil.moveÖ»ÊǼòµ¥¸ÄÒ»ÏÂÃû×Ö£¬Èç¹ûsrcºÍdstÔÚ²»Í¬µÄÎļþϵͳÉÏ£¬shutil.move»áÏÈ°Ñsrc¸´ÖƵ½dst£¬È»ºóɾ³ýsrcÎļþ¡£¿´µ½ÏÖÔÚ£¬´ó¶àÊýÅóÓÑÓ¦¸ÃÒѾ¶Ô pythonµÄÄÜÁ¦ÓеãüĿÁË£¬½ÓÏÂÀ´ÎÒ¾ÍÁиö±í£¬½éÉÜÒ»ÏÂÆäËüµÄº¯Êý£º
os.chdir(dirname)
°Ñµ±Ç°¹¤×÷Ŀ¼Çл»µ½dirnameÏÂ
os.getcwd()
·µ»Øµ±Ç°µÄ¹¤×÷Ŀ¼·¾¶
os.chroot(dirname)
°Ñdirname×÷Ϊ½ø³ÌµÄ¸ùĿ¼¡£ºÍ*nixϵÄchrootÃüÁîÀàËÆ
os.chmod(path,mode)
¸ü¸ÄpathµÄȨÏÞλ¡£mode¿ÉÒÔÊÇÒÔÏÂÖµ(ʹÓÃor)µÄ×éºÏ£º
os.S_ISUID
os.S_ISGID
os.S_ENFMT
os.S_ISVTX
os.S_IREAD
os.S_IWRITE
os.S_IEXEC
os.S_IRWXU
os.S_IRUSR
os.S_IWUSR
os.S_IXUSR
os.S_IRWXG
os.S_IRGRP
os.S_IWGRP
os.S_IXGRP
os.S_IRWXO
os.S_IROTH
os.S_IWOTH
os.S_IXOTH
¾ßÌåËüÃÇÊÇʲôº¬Ò壬¾Í²»×Ðϸ˵ÁË£¬»ù±¾ÉϾÍÊÇR´ú±í¶Á,W´ú±íд£¬X´ú±íÖ´ÐÐȨÏÞ¡£USR ´ú±íÓû§£¬GRP´ú±í×飬OTH´ú±íÆäËü¡£
os.chown(path,uid,gid)
¸Ä±äÎļþµÄÊôÖ÷¡£uidºÍgidΪ-1µÄʱºò²»¸Ä±äÔÀ´µÄÊôÖ÷¡£
os.link(src,dst)
´´½¨Ó²Á¬½Ó
os.mkdir(path,[mode])
´´½¨Ä¿Â¼¡£modeµÄÒâÒå²Î¼ûos.chmod()£¬Ä¬ÈÏÊÇ0777
os.makedirs(path,[mode])
ºÍos.mkdir()ÀàËÆ£¬²»¹ý»áÏÈ´´½¨²»´æÔڵĸ¸Ä¿Â¼¡£
os.readlink(path)
·µ»ØpathÕâ¸ö·ûºÅÁ´½ÓËùÖ¸ÏòµÄ·¾¶
os.remove(path)
ɾ³ýÎļþ£¬²»ÄÜÓÃÓÚɾ³ýĿ¼
os.rmdir(path)
ɾ³ýÎļþ¼Ð£¬²»ÄÜÓÃÓÚɾ³ýÎļþ
os.symlink(src,dst)
´´½¨·ûºÅÁ´½Ó
shutil.rmtree(path[,ignore_errors[,onerror]])
ɾ³ýÎļþ¼Ð
½éÉÜÁËÕâô¶à£¬ÆäʵֻҪ²éÒ»ÏÂosºÍshutilÁ½¸öÄ£¿éµÄÎĵµ¾ÍÓÐÁË£¬ºÇºÇ¡£¡£ÕæÕý±àд shell½Å±¾µÄʱºò»¹ÐèҪעÒ⣺
1.»·¾³±äÁ¿¡£pythonµÄ»·¾³±äÁ¿±£´æÔÚos.environÕâ¸ö×ÖµäÀ¿ÉÒÔÓÃÆÕͨ×ÖµäµÄ·½·¨ÐÞ¸ÄËü£¬Ê¹ÓÃsystemÆô¶¯ÆäËü³ÌÐòµÄʱºò»á×Ô¶¯±»¼Ì³Ð¡£±ÈÈ磺
os.environ[¡±fish¡±]=¡±nothing¡±
²»¹ýҲҪעÒ⣬»·¾³±äÁ¿µÄÖµÖ»ÄÜÊÇ×Ö·û´®¡£ºÍshellÓÐЩ²»Í¬µÄÊÇ£¬pythonûÓÐ export»·¾³±äÁ¿Õâ¸ö¸ÅÄΪʲôûÓÐÄØ£¿ÒòΪpythonûÓбØÒªÓÐ:-)
2.os.pathÕâ¸öÄ£¿éÀï°üº¬Á˺ܶà¹ØÓÚ·¾¶Ãû´¦ÀíµÄº¯Êý¡£ÔÚshellÀï·¾¶Ãû´¦ÀíºÃÏñ²»ÊǺÜÖØÒª£¬µ«ÊÇÔÚpythonÀï¾³£ÐèÒªÓõ½¡£×î³£ÓõÄÁ½¸öÊÇ·ÖÀëºÍºÏ²¢Ä¿Â¼ÃûºÍÎļþÃû£º
os.path.split(path) -> (dirname,basename)
Õâ¸öº¯Êý»á°ÑÒ»¸ö·¾¶·ÖÀëΪÁ½²¿·Ö£¬±ÈÈ磺os.path.split(¡±/foo /bar.dat¡±)»á·µ»Ø(¡±/foo¡±,¡±bar.dat¡±)
os.path.join(dirname,basename)
Õâ¸öº¯Êý»á°ÑĿ¼ÃûºÍÎļþÃû×éºÏ³ÉÒ»¸öÍêÕûµÄ·¾¶Ãû£¬±ÈÈ磺os.path.join(¡±/foo¡±,¡±bar.dat¡±)»á·µ»Ø¡±/foo/bar.dat¡±¡£Õâ¸öº¯ÊýºÍos.path.split()¸ÕºÃÏà·´¡£
»¹ÓÐÕâЩº¯Êý£º
os.path.abspath(path)
°Ñpathת³É¾ø¶Ô·¾¶
os.path.expanduser(path)
°ÑpathÖаüº¬µÄ¡±~¡±ºÍ¡±~user¡±×ª»»³ÉÓû§Ä¿Â¼
os.path.expandvars(path)
¸ù¾Ý»·¾³±äÁ¿µÄÖµÌæ»»pathÖаüº¬µÄ¡±$name¡±ºÍ¡±${name}¡±£¬±ÈÈç»·¾³±äÁ¿ FISH=nothing£¬ÄÇos.path.expandvars(¡±$FISH/abc¡±)»á·µ»Ø¡±nothing/abc¡±
os.path.normpath(path)
È¥µôpathÖаüº¬µÄ¡±.¡±ºÍ¡±..¡±
os.path.splitext(path)
°Ñpath·ÖÀë³É»ù±¾ÃûºÍÀ©Õ¹Ãû¡£±ÈÈ磺os.path.splitext(¡±/foo /bar.tar.bz2¡å)·µ»Ø(¡¯/foo/bar.tar¡¯, ¡®.bz2¡ä)¡£Òª×¢ÒâËüºÍos.path.split()µÄÇø±ð
3.ÔÚosÄ£¿éÓÐÒ»¸öºÜºÃÓõĺ¯Êý½Ðos.stat()ûÓнéÉÜ£¬ÒòΪos.pathÄ£¿éÀï°üº¬ÁËÒ»×éºÍËü¾ßÓÐͬÑù¹¦Äܵĺ¯Êý£¬µ«ÊÇÃû×Ö¸üºÃ¼ÇÒ»µã¡£
os.path.exists(path)
ÅжÏÎļþ»òÕßĿ¼ÊÇ·ñ´æÔÚ
os.path.isfile(
ÅжÏpathËùÖ¸ÏòµÄÊÇ·ñÊÇÒ»¸öÆÕͨÎļþ£¬¶ø²»ÊÇĿ¼
os.path.isdir(path)
ÅжÏpathËùÖ¸ÏòµÄÊÇ·ñÊÇÒ»¸öĿ¼£¬¶ø²»ÊÇÆÕͨÎļþ
os.path.islink(path)
ÅжÏpathËùÖ¸ÏòµÄÊÇ·ñÊÇÒ»¸ö·ûºÅÁ´½Ó
os.path.ismount(path)
ÅжÏpathËùÖ¸ÏòµÄÊÇ·ñÊÇÒ»¸ö¹Ò½Óµã(mount point)
os.path.getatime(path)
·µ»ØpathËùÖ¸ÏòµÄÎļþ»òÕßĿ¼µÄ×îºó´æȡʱ¼ä¡£
os.path.getmtime(path)
·µ»ØpathËùÖ¸ÏòµÄÎļþ»òÕßĿ¼µÄ×îºóÐÞ¸Äʱ¼ä
os.path.getctime(path)
·µ»ØpathËùÖ¸ÏòµÄÎļþµÄ´´½¨Ê±¼ä
os.path.getsize(path
·µ»ØpathËùÖ¸ÏòµÄÎļþµÄ´óС
4.Ó¦ÓÃpython±àдshell½Å±¾¾³£ÒªÓõ½os,shutil,glob(ÕýÔò±í´ïʽµÄÎļþÃû),tempfile(ÁÙʱÎļþ),pwd(²Ù×÷/etc/passwdÎļþ),grp(²Ù×÷/etc/groupÎļþ),commands(È¡µÃÒ»¸öÃüÁîµÄÊä³ö)¡£Ç°ÃæÁ½¸öÒѾ»ù±¾ÉϽéÉÜÍêÁË£¬ºóÃ漸¸öºÜ¼òµ¥£¬¿´Ò»ÏÂÎĵµ¾Í¿ÉÒÔÁË¡£
5.sys.argvÊÇÒ»¸öÁÐ±í£¬±£´æÁËpython³ÌÐòµÄÃüÁîÐвÎÊý¡£ÆäÖÐ sys.argv[0]ÊdzÌÐò±¾ÉíµÄÃû×Ö¡£
²»Äܹâ˵²»Á·£¬½ÓÏÂÀ´ÎÒÃǾͱàдһ¸öÓÃÓÚ¸´ÖÆÎļþµÄ¼òµ¥½Å±¾¡£Ç°Á½Ìì½ÐÎÒд½Å±¾µÄͬÊÂÓиö¼¸Íò¸öÎļþµÄĿ¼£¬ËûÏ븴ÖÆÕâЩÎļþµ½ÆäËüµÄĿ¼£¬ÓÖ²»ÄÜÖ±½Ó¸´ÖÆĿ¼±¾Éí¡£ËûÊÔÁËһϡ±cp src/* dest/¡±½á¹û±¨ÁËÒ»¸öÃüÁîÐÐÌ«³¤µÄ´íÎó£¬ÈÃÎÒ°ïËûдһ¸ö½Å±¾¡£²ÙÆðpythonÀ´£º
import sys,os.path,shutil
for f in os.listdir(sys.argv[1]):
shutil.copy(os.path.join(sys.argv[1],f),sys.argv[2])
ÔÙÊÔÒ»ÏÂlinuxapp°æÀïµÄÌû×Ó----°ÑÒ»¸öÎļþ¼ÐϵÄËùÓÐÎļþÖØÃüÃû³É 10001¡«10999¡£¿ÉÒÔÕâÑùд£º
import os.path,sys
dirname=sys.argv[1]
i=10001
for f in os.listdir(dirname):
src=os.path.join(dirname,f)
if os.path.isdir(src):
continue
os.rename(src,str(i))
i =1
ת×Ôhttp://www.2cto.com/kf/201009/74896.html
wujianguoshiye ÓÚ 2013-08-26 14:46:49·¢±í:
²»Ã÷¾õÀ÷
caoyu1099 ÓÚ 2013-01-23 13:18:01·¢±í:
wise-man ÓÚ 2013-01-21 21:34:47·¢±í:
¹¦Á¦²î£¬¿´¶¼²»¶®
alick ÓÚ 2013-01-21 19:25:16·¢±í:
ÄÜÓÃshellµÄʱºò¾ÍÓÃshell¡¡µ±shellд³öÀ´Ì«ÄÑ¿´Ê±ÔÙ¿¼ÂÇÓÃpythonµÈ¡£
ÐÇ¿ÕϵĴ«Ëµ ÓÚ 2013-01-21 18:25:26·¢±í:
¶¥