代碼類型: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="")
python操作文档字符串
最新推荐文章于 2025-04-11 12:05:25 发布