在Python的目录中行走时,如何仅列出符号链接?

发布于 2025-02-03 09:32:00 字数 1028 浏览 2 评论 0原文

我需要在嵌套目录中更新数百个符号链接。我尝试使用os.walk使用lastlinks = true,但它给了我子目录和东西。

假设我具有以下目录结构:

output/
output/subdirectory_1/file_1.txt
output/subdirectory_2/file_2.txt
output/subdirectory_2/symlink_1.txt
output/subdirectory_2/subdirectory_2a/symlink_2.txt
output/symlink_3.txt
output/file_3.txt

我如何使用os.walk(或标准库中的其他内容)可以给我类似于glob的东西。 ?

for fp in [INSERT FUNCTION]:
    print(fp)


output/subdirectory_2/symlink_1.txt
output/subdirectory_2/subdirectory_2a/symlink_2.txt
output/symlink_3.txt

​ 这是我当前的代码,这是首选方法吗?

In [8]: symlinks = list()
   ...: for i, path in pv(enumerate(os.walk(".", followlinks=True))):
   ...:     parent_directory, subdirectories, files = path
   ...:     for name in subdirectories + files:
   ...:         path_child = os.path.join(parent_directory, name)
   ...:         if os.path.islink(path_child):
   ...:             print(path_child)

I need to update hundreds of symlinks in a nested directory. I tried using os.walk with followlinks=True but it was giving me subdirectories and stuff.

Let's say I have the following directory structure:

output/
output/subdirectory_1/file_1.txt
output/subdirectory_2/file_2.txt
output/subdirectory_2/symlink_1.txt
output/subdirectory_2/subdirectory_2a/symlink_2.txt
output/symlink_3.txt
output/file_3.txt

How can I use os.walk (or something else in the standard library) that can give me something similar to glob? That is, like the following (order doesn't matter):

for fp in [INSERT FUNCTION]:
    print(fp)


output/subdirectory_2/symlink_1.txt
output/subdirectory_2/subdirectory_2a/symlink_2.txt
output/symlink_3.txt

EDIT:
This is my current code, is this the preferred method?

In [8]: symlinks = list()
   ...: for i, path in pv(enumerate(os.walk(".", followlinks=True))):
   ...:     parent_directory, subdirectories, files = path
   ...:     for name in subdirectories + files:
   ...:         path_child = os.path.join(parent_directory, name)
   ...:         if os.path.islink(path_child):
   ...:             print(path_child)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文