所以在这里,我正在开发一个可以通过Wi-Fi控制的游戏,我计划通过PhP网络服务器修改文件,这个文件稍后由Python程序在一个恒定的循环中读取,检测更新。因此,在给定时刻,python程序和Web服务器都将打开相同的文件,所以我的问题就出现了......
这基本上是我将使用的Python代码:
file = open('file.ext', 'r')
answer = file.readline()
file.close()
PhP代码:
$dir = $_POST['dir'];
$file = fopen('file.ext', 'w+');
switch ($dir) {
case 'up':
fwrite($file, 'up');
break;
case 'down':
fwrite($file, 'down');
break;
case 'left':
fwrite($file, 'left');
break;
case 'right':
fwrite($file, 'right');
break;
}
fclose($file);
谢谢!
答案 0 :(得分:0)
避免在两个程序中同时访问该文件。因为可能会出现一些问题。试想一下我们在读写的同时。
这种问题被称为"互斥"意味着某些资源(例如:文件)必须只能访问一个程序(或进程)。
因此,您可以使用已知的互斥解决方案,例如" Semaphore"或者"锁定"。有关更多信息,请参见以下链接:
PHP mutual exclusion (mutex)
PHP Mutual Exclusion on a File / MySQL reading and executing statements from a file using perl
Mutual exclusion thread locking, with dropping of queued functions upon mutex/lock release, in Python?
http://wiki.bash-hackers.org/howto/mutex
答案 1 :(得分:0)
可以从两个不同的程序访问该文件,只要您不尝试从两个不同的程序修改它。 从我所看到的代码来看,你只是在阅读Python而不是写作 - 你的写作只在PHP中进行。 因此,您不应该有任何冲突。 但是,您仍应确保使用文件锁定机制为PHP提供文件写锁定,以便其他程序不会导致冲突。