“字符串方法”如图所示,例如:
teststring = "[Syllabus]Sociology.131.AC.Race.and.Ethnicity.in.the.United.States (Spring 2012).docx"
print teststring.replace('.', ' ')
“[教学大纲]美国社会学 131 AC 种族和民族(2012 年春季)docx”
太棒了,我正在编写的脚本涉及大量文本操作,这是我正在做的很多事情,并且随着我添加功能,它仍然很重要。
我正在做的常见操作之一是:
teststring = "[Syllabus]Sociology.131.AC.Race.and.Ethnicity.in.the.United.States (Spring 2012).docx"
def f_type(f): return f.split('/')[-1] if os.path.isdir(f) else re.split(r'(\[Syllabus\]|\[Syllabus \d+\]|\[Video\]|)(.*?)( \(Fall \d+\)| \(Spring \d+\)| \(Summer \d+\)|)(\.part\d+\.rar$|\.\w+$)', f.split('/')[-1])[1]
def f_name(f): return f.split('/')[-1] if os.path.isdir(f) else re.split(r'(\[Syllabus\]|\[Syllabus \d+\]|\[Video\]|)(.*?)( \(Fall \d+\)| \(Spring \d+\)| \(Summer \d+\)|)(\.part\d+\.rar$|\.\w+$)', f.split('/')[-1])[2]
def f_term(f): return f.split('/')[-1] if os.path.isdir(f) else re.split(r'(\[Syllabus\]|\[Syllabus \d+\]|\[Video\]|)(.*?)( \(Fall \d+\)| \(Spring \d+\)| \(Summer \d+\)|)(\.part\d+\.rar$|\.\w+$)', f.split('/')[-1])[3]
def f_ext(f): return f.split('/')[-1] if os.path.isdir(f) else re.split(r'(\[Syllabus\]|\[Syllabus \d+\]|\[Video\]|)(.*?)( \(Fall \d+\)| \(Spring \d+\)| \(Summer \d+\)|)(\.part\d+\.rar$|\.\w+$)', f.split('/')[-1])[4]
print f_type(teststring)
print f_name(teststring)
print f_term(teststring)
print f_ext(teststring)
[教学大纲] Sociology.131.AC.Race.and.Ethnicity.in.the.United.States(2012 年春季).docx
但我希望能够添加:“.ftype()”、“.fname()”、“.fterm()”和“.fext()”方法(对应于我拥有的这些函数)。我不知道该怎么做。
我希望在脚本中的一堆不同函数中使用它(所以它不会是类绑定或任何东西)。
我什至无法弄清楚我应该用谷歌搜索什么。但是我怎样才能添加这些方法呢?
PS 方法的名称并不重要——所以如果我必须更改这些名称以避免与内置方法或其他方法发生冲突,那也没关系。
编辑:我希望能够将此方法用于以下方面:
def testfunction(f1, f2): print 'y' if f1.ftype()==f2.ftype() else 'n'
所以我不希望它被绑定到一个字符串或任何东西,我希望能够将它用于不同的字符串。