我试图获取代码列出文件夹中的所有目录,将目录更改为该文件夹并获取当前文件夹的名称.到目前为止我的代码是在下面,并且不是在工作.我似乎得到父文件夹名称.
import os
for directories in os.listdir(os.getcwd()):
dir = os.path.join('/home/user/workspace', directories)
os.chdir(dir)
current = os.path.dirname(dir)
new = str(current).split("-")[0]
print new
Run Code Online (Sandbox Code Playgroud)
我还在文件夹中有其他文件,但我不想列出它们.我已经尝试了下面的代码,但我还没有工作.
for directories in os.path.isdir(os.listdir(os.getcwd())):
Run Code Online (Sandbox Code Playgroud)
任何人都可以看到我错在哪里?
谢谢
有它的工作,但它似乎有点圆.
import os
os.chdir('/home/user/workspace')
all_subdirs = [d for d in os.listdir('.') if os.path.isdir(d)]
for dirs in all_subdirs:
dir = os.path.join('/home/user/workspace', dirs)
os.chdir(dir)
current = os.getcwd()
new = str(current).split("/")[4]
print new
Run Code Online (Sandbox Code Playgroud)
Ric*_*dle 55
这将打印当前目录的所有子目录:
print [name for name in os.listdir(".") if os.path.isdir(name)]
Run Code Online (Sandbox Code Playgroud)
我不确定你在做什么split("-"),但也许这段代码可以帮助你找到解决方案?
如果需要目录的完整路径名,请使用abspath:
print [os.path.abspath(name) for name in os.listdir(".") if os.path.isdir(name)]
Run Code Online (Sandbox Code Playgroud)
请注意,这些代码只会获得直接的子目录.如果你想要子子目录等,你应该walk像其他人建议的那样使用.
cor*_*ius 20
import os
for root, dirs, files in os.walk(top, topdown=False):
for name in dirs:
print os.path.join(root, name)
Run Code Online (Sandbox Code Playgroud)
对于你正在做的事情,步行是一个很好的内置
我喜欢@RichieHindle 的答案,但我为它添加了一些小修复
import os
folder = './my_folder'
sub_folders = [name for name in os.listdir(folder) if os.path.isdir(os.path.join(folder, name))]
print(sub_folders)
Run Code Online (Sandbox Code Playgroud)
否则它不是真的工作
| 归档时间: |
|
| 查看次数: |
89632 次 |
| 最近记录: |