删除以“。”开头的条目后,某些点文件未在文件数组中删除。

时间:2018-10-29 03:30:16

标签: python python-3.x file io

由于某些原因,有些文件以“。”开头。在第二个print()调用中,即使它们应在for循环

中删除
from os import *

cwd = getcwd()                                                                                                                               
cfiles = listdir(cwd)

print(str(cfiles) + "\n")

for files in cfiles:
    if files[0] == ".":
        cfiles.pop(cfiles.index(files))
    else:
        continue

print(cfiles)

2 个答案:

答案 0 :(得分:1)

您不应该在for循环中删除列表的元素。尝试类似的东西:

from os import *

cwd = getcwd()                                                                                                                               
cfiles = listdir(cwd)

print(str(cfiles) + "\n")
index = 0
while index < len(cfiles):
    files = cfiles[index]
    if files[0] == ".":
        cfiles.pop(cfiles.index(files))
    else:
        index += 1

print(cfiles)

答案 1 :(得分:0)

尝试此版本。工作正常:

from os import *

cwd = getcwd()
cfiles = list()
for file in listdir(cwd):
    if file[0] == ".":
        continue
    else:
        cfiles.append(file)

print(cfiles)

但是很奇怪的是,列表cfile中的一些文件(在调试时为.gitignore和config.yml)在cfile中使用“ for..in”时被忽略了。

希望解决方案有帮助!