import os
import sys
from time import sleep
soft = 'link.lnk'
fd_soft = open(soft, 'a');
i = 0;
while 1:
try:
line = 'the count is %d' %(i)
print line
fd_soft.write(line);
i += 1;
sleep(1);
fd_soft.flush()
except KeyboardInterrupt:
print "interrupt ctrl c"
fd_soft.close()
sys.exit(0)
link.lnk 是指向 old.txt 文件的软链接(soft link)。
此脚本打开软链接(soft link)并每秒向其中写入一个数字。
在运行时我更改 link.lnk 以指向一个新文件
ln -sf new.txt link.lnk
因为我想写入 new.txt,但进程仍然继续写入旧文件。
最佳答案
您仍在使用更改符号链接(symbolic link)之前打开的旧文件句柄。如果您希望新的写入反射(reflect)在新的符号链接(symbolic link)中,则需要在每次写入前重新打开文件句柄,并在每次写入后关闭它。
关于Python 不识别软链接(soft link)变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32320582/