Python:OSError:[Errno 22] 无效参数:'*.txt'

弗朗切斯科·曼托瓦尼

我有一个脚本,我想使用它来枚举文件夹中的所有文件类型:

#!/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) )

当我输入文件时它工作得很好:

在此处输入图片说明

即使我输入两个文件:

在此处输入图片说明

但不是当我输入所有文件时:

在此处输入图片说明

错误说:

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我输入文件的方式有关还是由其引起的问题

乔治·凯特尔伯勒

如果你想使用 * 之类的东西,那么你必须“glob”这些文件。这可能会令人困惑,因为 globbing 可能发生在许多地方。我不熟悉您使用的 shell,但是如果您使用的是 bash,那么 bash 会在将 glob传递给 Python之前执行它。换句话说,如果 *.txt 实际上匹配某些内容,bash 会用文件列表替换它,然后将该列表传递给 Python(作为单独的参数)。然后你的工作就是在 Python 中处理任意数量的参数(可能使用 argparse)。如果 *.txt 不匹配任何内容,则它不会被扩展,Python 会看到 *.txt,您必须将其作为错误处理。

在这里,看起来 globbing 没有发生,这意味着您的 shell 没有匹配的内容,或者您​​的 shell 没有进行 globbing。如果它不进行通配,那么您可以使用glob模块在 Python 中进行通配不过,通常 globbing 是由 shell 完成的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

读取()巨大文件时出现“ OSError:[Errno 22]无效参数”

Python-如何解决OSError:[Errno 22]无效的参数

IOError:[Errno 22]无效模式('r')或文件名:'c:\\ Python27 \ test.txt'

Pip错误,OSError Errno 22无效参数

os.read()给出OSError:[Errno 22]读取大数据时参数无效

OSError:[Errno 22]无效的参数:(从Github读取文件)

OSError:[Errno 22]无效的参数Python文件处理

Python熊猫to_csv导致OSError:[Errno 22]无效的参数

如何修复OSError:[Errno 22]无效的参数:'\\?

Errno 22无效参数-跳过Zipfile

OSError:[Errno 22] udp连接的无效参数

OSError:[Errno 22]无效的参数写入tar文件

为什么Datetime的.timestamp()方法返回OSError:[Errno 22]无效参数?

熊猫DataFrame.to_csv()OSError:[Errno 22]无效的参数和PermissionError:[Errno 13]权限被拒绝

OSError:[Errno 22]使用torch.load时参数无效

Aiogram send_message:OSError:[Errno 22]无效的参数

Python:Errno 22无效的参数

Python OSError: [Errno 22] 无效参数

Errno 22 转换 unix 时参数无效

Python 正则表达式 - OSError: [Errno 22] 无效参数:

Errno 22 无效参数 Python

尝试保存动画会出现错误:OSError:将动画保存到文件时出错(原因:[Errno 22] 参数无效)

Pyinstaller Errno 22 无效参数:

ipv6 python 套接字不工作!OSError: [Errno 22] 无效参数

OSError: [Errno 22] 无效参数:请求

OSError: [Errno 22] 打开文件时参数无效

OSError: [Errno 22] 无效参数: 'path'

ProcessStartInfo,python.exe:无法打开文件 [Errno 22] 无效参数

OSError:[Errno 22] 无效参数:- 将反斜杠更改为正斜杠没有帮助!(视窗)