[英]Using a file returned from a function as an argument for another function in python
我试图在另一个函数中使用一个函数编写的.txt
文件,该函数接受类似os.path
的对象。 我的问题是当我输入参数时会显示错误消息
TypeError:预期的str,字节或os.PathLike对象,而不是_io.TextIOWrapper
以下是我正在尝试做的简单形式。
def myfunction1(infile, outfile):
with open(infile, 'r') as firstfile:
#do stuff
with open(outfile, 'w+') as secondfile:
secondfile.write(stuff)
return(outfile)
def myfucntion2(infile, outfile):
infile=myfunction1(infile, outfile)
with open(infile, 'r') as input:
#do stuff
with open (outfile, 'w+') as outfile2:
outfile2.write(stuff)
return(outfile)
这两个函数本身都能很好地完成工作,只是我似乎无法从第一个函数开始为第二个函数提供值。
您的函数返回文件句柄,而不是字符串。
文件句柄具有name
属性,因此,如果您确实要使用它,则可以在myfunction1
使用return (outfile.name)
进行myfunction1
。 或者infile = myfunction1(infile, outfile).name
如果更适合您的情况,则可以在myfunction2
使用infile = myfunction1(infile, outfile).name
。 或者,由于返回的是open
的结果,所以不要再次尝试open
它-只需直接使用返回的文件句柄即可。
input=myfunction1(infile, outfile)
#do stuff
with open (outfile, 'w+') as outfile2 ...
总结: open
一个包含文件名的字符串作为输入,并返回一个文件句柄。 您可以使用open(thing).name
检索表示打开文件的文件名的字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.