我正在尝试遍历目录中的文件并列出每个文件的路径。 我的代码遍历每个文件但列出了错误的目录。返回完整目录我错过了什么?
到目前为止,这是我的代码:
import os
directory = "posts/"
for file in os.listdir(directory):
if file.endswith(".md"):
dir = os.path.abspath(file)
print "The Path is: " + str(dir)
结构是这样的:
.
├── app.py
└── posts
├── first.md
└── second.md
终端输出(缺少目录的/posts/
部分):
The Path is: /home/tc/user/python-md-reader/second.md
The Path is: /home/tc/user/python-md-reader/first.md
答案 0 :(得分:3)
如果你看一下源代码:
def abspath(path):
"""Return the absolute version of a path."""
if not isabs(path):
if isinstance(path, unicode):
cwd = os.getcwdu()
else:
cwd = os.getcwd()
path = join(cwd, path)
return normpath(path) # normpath according to the comment
# """Normalize path, eliminating double slashes, etc."""
abspath
所做的只是使用您提供的path
加入当前工作目录,因为您只将文件作为路径提供,并且您只是posts
的一级目录它将被忽略。
答案 1 :(得分:1)
您可以将目录放回路径:
dir = os.path.abspath(os.path.join(directory, file))