gpt4 book ai didi

python - 为什么不能使用同一个处理程序多次读取一个文件?

转载 作者:行者123 更新时间:2023-11-28 19:47:42 25 4
gpt4 key购买 nike

我打开了几个文本文件 (STL) 并使用之前定义的两个函数对它们运行了几个操作。准确地说,函数“point_STL”提取STL文件中包含的点的坐标,而函数“point_cloud”从STL文件中提取点,没有重复。

with open(folder+"bone_set1.stl", "r") as f1, open(folder+"bone_set2.stl", "r") as f2:
var1 = point_stl(f1,f2)
var2 = point_cloud(f1,f2)

为什么我似乎不能使用两次变量 f1 和 f2?如果我在第一个函数中使用它们,我不会在第二个函数中得到任何结果,反之亦然。

最佳答案

可能您正在 point_STL 调用中读取文件到 en。补救措施是在调用 point_cloud 之前将文件查找回位置 0:

with open(folder+"bone_set1.stl", "r") as f1, open(folder+"bone_set2.stl", "r") as f2:
var1 = point_stl(f1,f2)
f1.seek(0)
f2.seek(0)
var2 = point_cloud(f1,f2)

为了更好地理解:Python 中文本文件最常见的用例是逐行读取,对每一行的数据进行操作——这可能是 yoru 代码在这些函数中所做的。问题在于,一个文件一旦打开,就会保存一个内部“指针”,指向它被读取的位置,并且它将在下一次调用时从该位置恢复读取。您的第一个函数可能是将文件读取到末尾,指针位于文件末尾。在调用第二个函数时,没有什么可读的了。

现在,操作系统文件访问具有这种“查找”功能,它允许将文件指针放置在任意位置 - 对于文本文件,将其放置在开头、末尾或在先前存储的位置(在另一个变量中)。通过用“0”调用它,并抑制第二个(“whence”)参数,两个文件都重新回到开头。

关于python - 为什么不能使用同一个处理程序多次读取一个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40261515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com