使用Beeware在Galaxy23上手动删除保存在.npy文件中的numpy数组,尝试再次运行时会产生FileExcellingError

6tqwzwtp  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(72)

我的Beeware应用程序生成numpy数组,我将其保存为.npy,并保存在Galaxy23Download文件夹中。为了检查连续运行是否正常工作,在开发者模式下重新运行手机上的Beeware应用程序之前(连接到Windows 11上的PC)我用手机资源管理器手动删除所有.npy文件,但在下一次运行中,我会遇到FileExistingError崩溃,尽管所有.npy文件都被删除,并且在Download文件夹中看不到。手动清空Trash文件夹没有帮助。直接从手机安装(未连接到PC)运行应用程序也会出现同样的问题。
为了能够在Galaxy23上重新正确运行Beeware应用程序,我必须重新启动手机,然后再次正确生成.npy文件。我将numpypython 3.8.1一起使用如果我以.txt保存numpy数组,也会出现同样的问题
当我在Beeware emulator上使用相同的文件和相同的文件夹运行相同的Beeware应用程序时,问题并没有出现。
谁能给予我一个方向,我做错了什么?任何建议或提示将不胜感激。

**更新:**基于下面blackapps给出的答案所提供的理解,我发现了一个简单的解决方法,对我来说效果很好。其思想如下:每当我想删除一个文件,比如my_file.txt,我首先将其重命名为junk.txt。MediaStore会更新索引,因此my_file.txt不再被索引。然后删除junk.txt,现在可以重新创建my_file.txt。唯一始终保持索引的文件是junk.txt。我试过了,它似乎可以手动和编程完成这项工作。删除函数如下所示:

path="/storage/emulated/0/Documents/my_file.txt"
junk_path="/storage/emulated/0/Documents/junk.txt"

def delete_file():
    try:
        os.rename(path,junk_path)
        os.remove(junk_path)

    except FileNotFoundError:
        pass
t40tm48m

t40tm48m1#

这些文件将已被媒体存储编入索引。
有许多草率的文件浏览器只删除文件,但不删除媒体存储中的条目。
只要它们在媒体存储中,就不能再次创建它们。
也删除媒体存储中的条目。
重新启动时,媒体存储会扫描整个存储,因此条目将消失。

相关问题