微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何打开符号链接的目标?

如何解决如何打开符号链接的目标?

我有一个文件test_a.txt

12345
67890
12345
67890

然后,我创建一个指向文件的符号链接

> ln -s ./test_a.txt test_b.lnk

现在,我想通过它的链接在python脚本中打开文件

fa = open('test_a.txt',mode='rt')
print(len(fa.readlines()))
fb = open('test_b.lnk',mode='rt')
print(len(fb.readlines()))

输出

5
1

因此,第二个open()调用将打开链接而不是目标文件。如何告诉python遵循链接


更新1 :环顾四周后,我发现应该将给定路径(符号链接名称)解析为其目标的os.readlink()os.path.realpath()。但是,在Cygwin bash终端中尝试此操作时,出现以下错误

OSError: [WinError 4390] The file or directory is not a reparse point: 'test_b.lnk'

这似乎是Cygwin特有的问题,给问题增加了另一层复杂性。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。