python - 在 read_file 函数中使用 yield 和 return
问题描述
我正在编写一个简单的工具来读取我的文件,它应该能够区分给定路径是指向某个文件还是文件的根路径。
我的代码是这样的:
ALL_SEQ = ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10']
def read_pose_txt(filepath):
if os.path.isfile(filepath):
return np.loadtxt(filepath)
elif os.path.isdir(filepath):
for seq in ALL_SEQ:
filepath_x = os.path.join(filepath, (str(seq)+".txt"))
yield np.loadtxt(filepath_x)
else:
raise RuntimeError("wrong filepath")
但是当我给出某个文件的路径时,这个函数也会产生一个生成器,而不是简单地返回加载的 txt。
为什么我不能在同一个函数中使用 return 和 yield?有没有更好的方法来实现我这样一个智能文件阅读器的目标?
此致
哲
解决方案
您if
的 s 是向后的:如果路径是目录,则调用loadtxt
; 如果它是一个文件,则循环调用loadtxt
.
推荐阅读
- python - 球碰撞代码不起作用,球粘在一起
- gcc - 为什么在尝试配置 make 时出现此错误?
- sql-server - SQL有两列不同的计数
- c# - 用于在数据网格中绑定的多种属性类型
- flutter - 如何在 Flutter 中检查 DateTime 初始化变量中的可为空值
- swift - 为什么 Data(bytes:count:) 需要一个可变变量作为其指针的源?
- c - 如何为 SDL 窗口设置小于 32 bpp?
- c - 如何用 C 语言更新 bin 文件中的数据?
- flutter - Riverpod context.read() 只是返回提供程序中的数据类型,所以我无法更新值
- python - 带有 matplotlib Canvas 的 Tkinter 应用程序拒绝停止