python操作文档字符串

代碼類型:python
功能說明:通過py文件可以對文檔檢索字符串的操作
command:wfd.py 路徑\文件名 參數
參數如下:
    gstr:查看字符串是否在文檔中
    Tstr:用str2 替換文檔中的 str1,并返回替換后的數據
    sl int1 el int2:截取文檔中第int1行到第int2行的數據
    sa int1 ea int2:截取文檔中第int1個下標字符到第int2個下標字符的數據
    /n:返回包含字符串的所有行的行號及數據
    /i:不區分大小寫查找包含字符串的所有行
    /c:返回包含當前字符串所有行的行號
注意:
    /n,/i,/c只能用在查找字符串時使用,且/n與/c不可同時使用

import sys
import os
def ispath(arg):
       if os.path.exists(str(arg[0])):
               pass
       else:
                print("this path is not exiest,please check!")
                sys.exit()

def line(arg):
    pathstr = ispath(arg)
    path = r"%s" % arg[0]
    index_sl = int(arg.index("sl"))
    index_el = int(arg.index("el"))
    with open(path, "r", )as f:
        content = f.readlines()
        if int(arg[index_sl+1]) <= len(content) and int(arg[index_el+1]) <= len(content) and int(arg[index_sl+1])<= int(arg[index_el+1]):
            ss=""
            for i in range(int(arg[index_sl+1])-1,int(arg[index_el+1])):
                ss += content[i]
            return ss
        else:
            return "index out of the txt range"

def find_str(argv):
        pathstr = ispath(argv)
        index = int(argv.index("gstr"))
        path = r"%s"%argv[0]
        with open(path,"r",)as f:
            ss = ""
            b = 1
            for i in f:
                if argv[index+1] in i:
                    # print("數據為:%s"%i,end="")
                    tt = i.split(",")
                    if "/n" in argv:
                        ss = ss + str(b) +":"+ i
                    elif "/c" in argv:
                        ss = ss + "行號:" + str(b) + "\n"
                    else:
                        ss += i
                elif "/i" in argv:
                    if argv[index+1].lower() in i.lower():
                        if "/n" in argv:
                            ss = ss + str(b) + ":" + i
                        elif "/c" in argv:
                            ss = ss + "行號:" + str(b) + "\n"
                        else:
                            ss += i
                else:
                    pass
                b = b + 1
            return ss

def split(argv):
    pathstr = ispath(argv)
    path = r"%s" % argv[0]
    index1 = argv.index("sa")
    index2 = argv.index("ea")
    if argv[index1] == "sa" and argv[index2] == "ea" and int(argv[index1+1]) <= int (argv[index2+1]):
        ss = ""
        with open(path, "r", )as f:
            content ="".join(f.readlines())
            ss = ss + content[int(argv[index1+1])-1:int(argv[index2+1])]
        return ss
    else:
        return "index out of the txt range"

def reserve(argv):
    if "/v" in argv:
        index = int(argv.index("gstr"))
        path = r"%s" % argv[0]
        with open(path, "r", )as f:
            ss = ""
            for i in f:
                if argv[index+1] not in i:
                    # print("數據為:%s"%i,end="")
                    tt = i.split(",")
                    ss += i
                else:
                    pass
            return ss
    else:
        pass

def repleace_str(argv):
    index = int( argv.index("Tstr"))
    pathstr = ispath(argv)
    path = r"%s" % argv[0]
    ss = ""
    with open(path, "r", )as f:
        content = "".join(f.readlines())
        ss = content.replace(argv[index+1],argv[index+2])
        return ss

def command(arg):
    if "sl" in arg and "el" in arg:
        return line(arg)
    elif "sa" in arg and "ea" in arg:
        return split(arg)
    elif "/v" in arg:
        return reserve(arg)
    elif "gstr" in arg:
        return find_str(arg)
    elif "Tstr" in arg:
        return repleace_str(arg)
    else:
        print("gstr:查找字符串string    Tstr:str2替換掉str1,產生一組新的string")

if __name__ == '__main__':
        # result ,tt= find_str(sys.argv[1:])
        tt = command(sys.argv[1:])
        print("返回的數據接口為:tt"+"\n",tt,end="")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值