gpt4 book ai didi

python - 使用 Python 获取特定的父文件夹

转载 作者:行者123 更新时间:2023-11-28 19:45:52 25 4
gpt4 key购买 nike

我已经有了这段可运行的代码,但在写完之后我确实有一种想尖叫“它还活着,它还活着!”的冲动。

我想要做的是获取以文件夹“modules”作为其父文件夹的文件夹,例如来自/home/user/puppet/modules/impuls-test/templates/apache22/我想要/home/user/puppet/modules/impuls-test/

我想出的是:

user@server:~/puppet/modules/impuls-test/templates/apache22$ python
Python 2.4.2 (#1, Apr 13 2007, 15:38:32)
[GCC 4.1.0 (SUSE Linux)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> cwd = os.getcwd()
>>> path = cwd
>>> print "cwd: %s" % cwd
cwd: /home/user/puppet/modules/impuls-test/templates/apache22
>>> for i in xrange(len(cwd.split('/'))):
... (head, tail) = os.path.split(path)
... print "head: %s" % head
... print "tail: %s" % tail
... if tail == 'modules':
... moduleDir = head + '/modules/' + cwd.split('/')[i+2] + '/'
... print "moduleDir: %s" % moduleDir
... break
... else:
... path = head
...
head: /home/user/puppet/modules/impuls-test/templates
tail: apache22
head: /home/user/puppet/modules/impuls-test
tail: templates
head: /home/user/puppet/modules
tail: impuls-test
head: /home/user/puppet
tail: modules
moduleDir: /home/user/puppet/modules/impuls-test/

我获取当前工作目录并使用 os.path.split 直到它到达模块文件夹。使用普通的 string.split 函数遍历 cwd,然后我可以从原始 cwd.split('/') 添加 moduleDir > 当前头部的数组。

有人能告诉我一个更好的/pythonic 的方法来做到这一点吗?当然,我可以检查当前头部是否以模块结尾,然后附加当前尾部,但这只会使循环中断得更快,而且仍然很难看。

最佳答案

path = "/home/user/puppet/modules/impuls-test/templates"
components = path.split(os.sep)
print str.join(os.sep, components[:components.index("modules")+2])

打印

/home/user/puppet/modules/impuls-test

关于python - 使用 Python 获取特定的父文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6015721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com