这可能是一个来自python新秀的非常愚蠢的问题。 是否可以将(文本)文件作为函数的输入?如果是,那该怎么做。
我正在使用正则表达式,我尝试使用我的函数作为从文件中选择字符串的方法,在我的例子中我称之为“文本”。文件名称为re_examples.txt。但是,它们取的是文件的名称,而不是文件中的内容。
import re
def get_first_and_last_part (text):
matcher2 = re.compile('([a-z]+)')
match = matcher2.search(text)
if match != None:
first = match.start(1)
last = match.end(1)
before = text[:first-1]
after = text[last+1:]
return before, after
else:
return None, None # or some other value(s)
当我用文件名作为参数调用函数时,我得到了这个结果。
get_first_and_last_part('re_examples.txt')
('re_examples.tx', 'examples.txt')
答案 0 :(得分:0)
解决方案取决于您是想要修改函数本身,还是希望保持不变,只需更改传递给它的内容。
如果您希望参数为文件名,只需打开文件并阅读
即可def get_first_and_last_part (filename):
with open(filename, "r") as f:
text = f.read()
matcher2 = re.compile('([a-z]+)')
...
如果您想保持get_first_and_last_part
未修改,请在调用函数之前打开文件:
def get_first_and_last_part(text):
...
with open('re_examples.txt', 'r') as f:
text = f.read()
get_first_and_last_part(text)
答案 1 :(得分:0)
您需要先打开文件,然后使用'打开'方法。因此,您可以先打开文件,然后将文件内容传递给您的方法。要做到这一点,你可以做的就是这个
text = ""
with open(filename, 'r') as f:
text = f.read()
# call method
get_first_and_last_part(text)