Go 如何从字符串创建*os.File的实例?

Go 如何从字符串创建*os.File的实例?,go,Go,我有一个字符串,需要作为只读文件指针(*os.file)。我无法使用strings.NewReader,因为该函数只接受*os.File。这可能吗 我意识到我可以将字符串直接写入文件,然后再次打开它。但是我想避免这个步骤。您不能从字符串创建*os.File。如果您不能使用io.Reader,最好的办法是将字符串写入临时文件,然后使用os.Open获取*os.file您无法从字符串创建*os.file。如果您不能使用io.Reader,最好的办法是将字符串写入临时文件,然后使用os.Open获取*

我有一个字符串,需要作为只读文件指针(
*os.file
)。我无法使用
strings.NewReader
,因为该函数只接受
*os.File
。这可能吗


我意识到我可以将字符串直接写入文件,然后再次打开它。但是我想避免这个步骤。

您不能从字符串创建
*os.File
。如果您不能使用
io.Reader
,最好的办法是将字符串写入临时文件,然后使用
os.Open
获取
*os.file
您无法从字符串创建
*os.file
。如果您不能使用
io.Reader
,最好的办法是将字符串写入临时文件,然后使用
os.Open
获取
*os.file
简而言之,您不能。出于这个原因,通常不建议在使用os.File的Go to write函数中使用它,除非您实际上正在执行手动系统调用或其他需要os.File的操作。相反,您的函数应该根据需要接受io.Reader或其他接口(可能包含io.Seeker)

如果您可以修改需要os.文件的位置,这是您最好的选择。如果你不能,而且它真的只需要一个阅读器,你可以使用


有了更多的背景,我可能会给出一个更好的建议。

简单的回答是你不能。出于这个原因,通常不建议在使用os.File的Go to write函数中使用它,除非您实际上正在执行手动系统调用或其他需要os.File的操作。相反,您的函数应该根据需要接受io.Reader或其他接口(可能包含io.Seeker)

如果您可以修改需要os.文件的位置,这是您最好的选择。如果你不能,而且它真的只需要一个阅读器,你可以使用


如果有更多的上下文,我可能会给出更好的建议。

这是第三方库的限制吗?这是第三方库的限制吗?