Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果枚举中的文件与给定文本匹配,则跳过该文件_Python_Loops_Enumerate_Skip - Fatal编程技术网

Python 如果枚举中的文件与给定文本匹配,则跳过该文件

Python 如果枚举中的文件与给定文本匹配,则跳过该文件,python,loops,enumerate,skip,Python,Loops,Enumerate,Skip,我有这个密码 for file in glob.glob("[!Skip]*.xlsm"): ....run various code 参数是,如果文件名以“Skip”开头,则不要将此代码应用于文件夹中的那些文件。它工作得很好。但是,有时它会跳过文件,即使文件名不是以skip开头 为什么 如果我将代码更改为“*.xlsm”,它将在文件上工作。因此,文件本身没有问题。您以错误的方式使用[!pattern]。 看看我的小例子 import glob import os os.chdir('stof

我有这个密码

for file in glob.glob("[!Skip]*.xlsm"):
....run various code
参数是,如果文件名以“Skip”开头,则不要将此代码应用于文件夹中的那些文件。它工作得很好。但是,有时它会跳过文件,即使文件名不是以skip开头

为什么


如果我将代码更改为“*.xlsm”,它将在文件上工作。因此,文件本身没有问题。

您以错误的方式使用[!pattern]。 看看我的小例子

import glob
import os
os.chdir('stof_names')
print(f"{glob.glob('*.txt')}")  # ['dont_Skip.txt', 'i.txt', 'Skip.txt', 'Skipme.txt', 'Spik_me.txt', 'S_me.txt']
print(f"{glob.glob('[!Skip]*.txt')}")  # ['dont_Skip.txt'] oops Where are my 'Spik_me.txt' and S_me.txt ans i.txt ?
# this happens because [!Skip] matches all symbols besides any of ['S','k','i','p']
# simplest solution, use 'filter' function
print(f"{list(filter(lambda x: not x.startswith('Skip'), glob.glob('*.txt')))}")
# ['dont_Skip.txt', 'i.txt', 'Spik_me.txt', 'S_me.txt']

您是否有更多信息,例如:您的问题是否始终适用于特定文件,如果是,名称是什么?@Pac0否,它不适用于特定文件。所以我想知道我的代码是否有问题?代码读取以“Skip”开头的find文件,一个单词中没有空格,对吗?嗨,谢谢你的回答。对不起,我不知道怎么让它工作<代码>对于({list(filter(lambda x:not x.startswith('Skip'),glob.glob('*.xlsm')))})中的文件:以上返回类型错误:不可损坏的类型:“list”