Python 不识别软链接(soft link)变化

标签 python linux

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/

相关文章:

python - 如何建立一个模型与另外两个模型之间的关系

python - scrapy - 从响应/请求 header 获取cookie

python - 如何从远程主机连接到 Tor 控制端口 (9051)?

python - Memsql::Streamliner Python 转换

python - 更改Python中的重复值

python - 如何在不绑定(bind) IP 的情况下在特定端口上运行服务

linux - 如何为位于/usr/bin 中的程序添加替代项

c++ - 树莓派交叉编译——执行程序结束于 "Segmentation fault"

linux - 遍历带有空格的文件列表

linux - 使用 CP2102 的 TTL 串行 USB 转换器时出现问题