【发布时间】:2018-05-18 23:11:39
【问题描述】:
我想使用一个脚本来枚举文件夹中的所有文件类型:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import argparse
import magic
import os
# Argparse starts here
parser = argparse.ArgumentParser()
parser.add_argument('-input', dest='input',help="input one or more files",nargs='+',metavar=None)
args = parser.parse_args()
for files in args.input:
if magic.from_file(files,mime=True) == "text/plain":
print (files, "=" , magic.from_file(files,mime=True) )
当我输入文件时效果很好:
即使我输入了两个文件:
但不是当我输入 ALL 文件时:
错误提示:
Traceback (most recent call last):
File "Test.py", line 15, in <module>
if magic.from_file(files,mime=True) == "text/plain":
File "C:\Users\FrancescoM\AppData\Local\Programs\Python\Python36-32\lib\site-packages\magic\magic.py", line 135, in from_file
return m.from_file(filename)
File "C:\Users\FrancescoM\AppData\Local\Programs\Python\Python36-32\lib\site-packages\magic\magic.py", line 85, in from_file
with open(filename):
OSError: [Errno 22] Invalid argument: '*.txt'
但是*.txt 正是我想要输入的;我也想输入任何文件*.*
这是与python-magic 相关的问题还是由我输入文件的方式引起的?
【问题讨论】:
-
试图打开一个名为
*.txt的文件是没有意义的。你想循环每个文件吗?您必须为此执行多次打开。
标签: python parameter-passing command-line-arguments argparse python-magic