我有以下代码来获取特定目录中的文件名列表
import sys,os
data_files = [x[2] for x in os.walk(os.path.dirname(sys.argv[0]))]
print data_files
输出类似于
[['bar.py', 'foo.py', 'foo.pyc', 'fooBar', 'fooBar.py', 'tar.py', 'tar.pyc']]
我想解析此列表并仅将特定文件名传递给另一个函数
例如:我想解析上面的列表?(它是一个列表吗?)并且只将tar.py传递给另一个函数,即名称tar,所以另一个函数可以像
一样使用它import filename ( in this case tar)
我是python的新手,并尝试了很多列表解析的东西,但无法提取名称。任何帮助将不胜感激
我正在使用python 2.7
感谢您的时间
编辑:
我想出了如何解析列表
data_files = [x[2] for x in os.walk(os.path.dirname(sys.argv[0]))]
hello = data_files[0]
print hello[0].split(".")[0]
当我尝试将文件名分配给像
这样的变量时,问题就出现了var = hello[0].split(".")[0]
并使用import var
但我不确定python是否允许导入这样的模块,因为它不会将var视为变量而是模块名称。我怎么能克服这个
答案 0 :(得分:2)
我对列表解析的意思有点困惑。这是一个列表,如果你想删除所有的文件扩展名,你可以使用列表推导来实现它,并将其拆分为fastreload建议。
new_list = [x.split('.')[0] for x in data_files]
如果您需要逐步查看每个文件,可以使用
执行此操作for file in data_files:
your code goes here
答案 1 :(得分:0)
如果您知道元素所在的索引,则可以执行file_list[index_of_your_element].split('.')[0]
,例如:
file_list = ['bar.py', 'foo.py', 'foo.pyc', 'fooBar', 'fooBar.py', 'tar.py', 'tar.pyc']
print l[5].split('.')[0] == 'tar'
将打印true
。您的问题有点令人困惑,您对该元素了解多少,以及如何使用它?