我想:
正如标题所说,
运行以下内容:
python3 program.py [〜/ home / me / Documents / * .txt]
我会得到
['text1.txt','text2.txt',...,'textn.txt']
我在网上找到的解决方案:
我在网上找到的很多解决方案包括使用fileinput.input()和sys.argv。问题是我没有正确实现这些解决方案(我是Python的完整菜鸟)。
这是最有希望的解决方案:
import fileinput
for line in fileinput.input():
process(line)
但它一直告诉我“过程没有定义” - 我还没有找到解决方案。
另一个解决方案是sys.argv [0]。但它一直告诉我列表索引超出范围。
编辑:This解决方案不会超过python的命令行参数。这就是我最常遇到的问题。
答案 0 :(得分:0)
这对我有用:
import os
import sys
def getfilenames(path):
ftype = path.split(".")[-1]
folder = path.split("*")[0]
return [i for i in os.listdir(folder) if ftype in i.split(".")[-1]]
print(getfilenames(sys.argv[1]))
将路径作为字符串提供:
python example.py "/path/to/file/*.type"
答案 1 :(得分:0)
您可以合并how to list all files of a directory和command line arguments in python中提供的答案 创造这样的东西:
import sys
from os import walk
path = sys.argv[1]
files = []
for (dirpath, dirnames, filenames) in walk(path):
files.extend(filenames)
print (files)
并使用
运行它python3 listdir.py $PWD