【发布时间】:2013-09-02 10:52:01
【问题描述】:
当然,我了解如何在 Python 中读写文本文件。但是,我需要能够在没有 Windows 的情况下读取文件,因为它在另一个进程中“打开”。这是交易:
我在我的 Raspberry Pi 上运行了一个 Python 脚本,它通过网络从我笔记本电脑上的文本文档中提取一个 3 位数字。我希望能够随时更改此文本文档并将其保存,以便 Python 脚本几乎立即更新。这就是我现在所拥有的。
while True:
text = open("/mnt/win/text.txt","r")
rgb = text.read()
text.close()
## ... Do stuff with rgb
time.sleep(.2)
这很好用,因为我基本上有一个(略多于)0.2 秒的循环,其中文件“text.txt”只打开了一小部分。但是,每当我通过记事本修改“text.txt”时,点击保存可能会给我一个错误,提示该文件已在另一个进程中打开。所以这让我想知道;有办法解决吗?我见过类似的事情,有人使用 PHP 脚本读取文件并将其转储到他们的 Python 代码中,但我有点希望将其全部保留为 Python。谢谢!
编辑:顺便说一句,如果不是很明显,Windows 上包含文本文件的文件夹已安装到 Linux 上的 /mnt/win。
【问题讨论】:
-
如何将文本文件的当前“版本”复制到临时空间,处理临时文件,然后重新计算校验和以确保文件没有更改?
-
在复制过程中的任何时候,该文件是否会被脚本“使用”?因为如果不是,那是一个非常简单的修复。
-
我应该指定
copy,我的意思是你应该使用os或shutil之类的东西。看看this -
如果您正处于
text.read()的中间并且记事本写入文件,您希望发生什么? (您可能已经猜到了,Windows 默认强制文件锁定的全部意义在于让您不必考虑和回答这个问题……) -
@inspectorG4dget:你将如何在不打开文件并读入的情况下重新计算校验和?