我需要文件路径,os.path.dirname
没有给我完整的路径(它不包括文件本身-例如,home/a/b
而不是home/a/b/filename
)。我还需要文件名以便以后打印。由于用户输入的参数是文件名,所以我需要一种将输入存储到列表中的方法。在
import sys
import argparse
import inspect, os
import os.path
file_list = []
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('file', type=argparse.FileType('r'), nargs='*')
args = parser.parse_args()
for f in args.file:
with f:
data = f.read()
print data
x = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
print x
file_list.append(x+#I need the filename here)
您可以使用
os.path.abspath(fl.name)
获取文件处理程序的完整路径, 所以这应该是有效的:为了将来的参考,请注意
os.path.basename
,它只返回路径的名称组件。在您可以使用
os.path.abspath(f.name)
获得用于打开文件f
的绝对文件路径。在但是,如果您还需要filepath,那么最好不要将类型转换为fileobject,然后自己执行,而不是尝试对打开的文件进行反向工程。这样您就已经有了文件路径的列表,例如:
怎么样
它将当前curpwd与
f.name
中记录的文件名相结合。在如果这不够健壮,您可以接受用户的文件名,然后自己打开文件。^{cd2>不是必需的。它只是一种方便的类型,在获取输入和输出文件并对它们执行简单操作的脚本中最有用。换言之,是对通用
bash
函数进行初始化的脚本。在相关问题 更多 >
编程相关推荐