我正在搜索如何在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'
任何人都可以帮助我吗?
由于
答案 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)