некоторые точечные файлы не удаляются в массиве файлов после удаления записей, начинающихся с "." - PullRequest
0 голосов
/ 29 октября 2018

по некоторым причинам есть некоторые файлы, которые начинаются с "." во втором 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 голосов
/ 29 октября 2018

Попробуйте эту версию. Работало нормально:

from os import *

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

print(cfiles)

Но довольно странно, что несколько файлов в списке cfiles (.gitignore и config.yml в моем случае при отладке) были проигнорированы, когда «c .. in» использовался с cfiles.

Надеюсь, решения помогут!

0 голосов
/ 29 октября 2018

Не следует удалять элементы списка внутри цикла 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...