在python中获取文件的绝对路径

时间:2015-04-28 05:27:04

标签: python

我正在搜索如何在python上获取文件的绝对路径,但没有太多运气。这是我的代码

import os


directory = raw_input("What's the directory? ")
print "Reading files.."
listing = os.listdir(directory)
for fname in listing:
    with open(fname) as f:
        if "yes" in f.read():
            print f.name
f.close()

我的问题是这个...列表完全正常..但是当listdir方法将变量传递给open方法时,变量是没有绝对路径的传递,所以它不会读取文件,因为它是读取没有路径的文件..这里是错误的示例

目录是什么? /家庭/迭戈/测试 阅读文件.. Traceback(最近一次调用最后一次):   文件“/home/diego/Documents/progra/python/antivirus/antivirus.py”,第14行,在     使用open(fname)作为f: IOError:[Errno 2]没有这样的文件或目录:'test'

任何人都可以帮助我吗?

由于

2 个答案:

答案 0 :(得分:3)

好的,所以你的问题与绝对路径没有任何关系。问题是您只使用它的文件名尝试打开另一个目录中存在的文件。使用os.path.join创建完整的文件名并使用:

for fname in listing:
    full_name = os.path.join(directory, fname)
    with open(full_name) as f:
        if "yes" in f.read():
            print f.name

答案 1 :(得分:2)

from os.path import abspath

full_path = abspath(filename)