Python命令行参数,它接受目录并输出文件列表

时间:2017-01-30 18:09:55

标签: python directory command arguments line

我想:

正如标题所说,

运行以下内容:

  

python3 program.py [〜/ home / me / Documents / * .txt]

我会得到

['text1.txt','text2.txt',...,'textn.txt']

我在网上找到的解决方案:

我在网上找到的很多解决方案包括使用fileinput.input()和sys.argv。问题是我没有正确实现这些解决方案(我是Python的完整菜鸟)。

这是最有希望的解决方案:

Source

import fileinput
for line in fileinput.input():
    process(line)

但它一直告诉我“过程没有定义” - 我还没有找到解决方案。

另一个解决方案是sys.argv [0]。但它一直告诉我列表索引超出范围。

编辑:This解决方案不会超过python的命令行参数。这就是我最常遇到的问题。

2 个答案:

答案 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 directorycommand 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