Py脚本:转换两个文件名称

自己写的一个简单的交换两个文件(夹)的py脚本,一开始本打算用shell写的,后来赶脚自己的shell还是比较菜,不如python来的利索,于是py了。

代码如下:

#!/usr/bin/env python
# coding=utf-8
# author:andrewallanwallace@gmail.com
'''
This simple script is written for easily swap two files or two folders.
'''


def swap(origin, dest, temp):
    '''
    Swap files 
    mv origin temp
    mv dest origin
    mv temp dest
    '''
    from os import system
    origin2Temp = 'mv -f -v %s %s'%(origin, temp)
    system(origin2Temp)
    
    dest2Origin = 'mv -f -v %s %s'%(dest, origin)
    system(dest2Origin)

    temp2Dest = 'mv -f -v %s %s'%(temp, dest)
    system(temp2Dest)


def shouldSwap(origin, dest):
    from os import path
    
    originExists = path.exists(origin)
    destExists = path.exists(dest)

    if(not originExists or not destExists):
        print 'Both the files should be existing %s existing State = %s ; %s existing State = %s'%(origin, str(originExists), dest, str(destExists))
        return False 
    
    originIsDir = path.isdir(origin)
    destIsDir = path.isdir(dest)

    if (originIsDir != destIsDir):
        print 'the two files should be the same type %s is dir = %s ;%s is dir = %s'%(origin, str(originIsDir), dest, str(destIsDir))
        return False
    return True
        

def main():
    '''
    Usage:swapf.py origin dest [temp]
    '''
    import sys
    paramsSize = len(sys.argv)
    
    origin = None
    dest = None
    temp = 'temp_backup.file'

    if (paramsSize < 3):
        print main.__doc__
        return

    origin = str(sys.argv[1])
    dest = str(sys.argv[2])


    if (paramsSize == 4):
        temp = str(sys.argv[3])


    if (shouldSwap(origin, dest)):
        swap(origin, dest, temp)



main()


使用方法

文件:

swapf.py a.txt b.txt temp.txt

文件夹

swapf.py folderA folderB tempFolder

第三个参数不需要添加也可以。


github地址:https://github.com/androidyue/little_works/blob/master/py_works/tools/swapf.py


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值