2016-01-28 1 views
0

Этот код принимает данные из другой программы и смотрит в системные диски или на любой другой диск и ищет, где можно найти соответствующие наборы данных. Это необходимо, так как есть моменты, когда во время анализа мы должны найти исходные наборы данных и скопировать некоторые отсутствующие файлы, которые не были скопированы в Powershell (по тем или иным причинам). В системе множество накопителей и множество наборов данных.Отдельные данные из разных источников в списки списков для анализа

Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда код создает набор данных для синтаксического анализа (с одного из дисков), он просто добавляет новый набор данных в конец предыдущего. Я пытался отделить каждый новый список в список списков, но не добился успеха. Он очень хорошо сканирует каждый диск, но добавление - это проблема, с которой я сталкиваюсь в этом коде. В любом случае, мне просто нужно проанализировать набор данных с каждого диска отдельно.

def binarySearch(): 
    n = 0 
    groupList = [] 
    dataList = [] ## tried making list of lists using this list 
    setFolder = [] 
    driveList = [] 
    driveList.append('Z:\\\\') 
    driveList.append('Q:\\\\') 
    driveList.append('H:\\\\') 
    driveList.append('E:\Test Search') 
    for drives in driveList: 
     groupList.append(drives) 
    print groupList 
    for items in groupList: 
     os.chdir(items) ## creates a list of lists for each drive 
     print 'Scanning drive:',os.getcwd() 
     for line in os.listdir(items): 
      if len(line)==3 and line != 'sec': 
       setFolder.append(int(line)) ##appends new dataset to old one 
     setFolder.sort() 
     n = n + 1 
     continue 

Im вполне уверен, что-то должно произойти с этой строки кода:

setFolder.append(int(line)) ##appends new dataset to old one 

, где она создает новый список из рамках существующего списка setFolder. Или, если бы я мог создать новый список вместе с каждой итерацией, которая также могла бы работать.

+0

Неужели я сделал ужасную работу по представлению этого, чтобы не было ответов? Если это так (скорее всего), что я могу сделать, чтобы получить ответы на это? –

ответ

1

Вы всегда добавляете к setFolder, никогда не добавляя к dataList. Вероятно, вы хотите сделать что-то вроде

for items in groupList: 
    setFolder = [] 
    os.chdir(items) ## creates a list of lists for each drive 
    print 'Scanning drive:',os.getcwd() 
    for line in os.listdir(items): 
     if len(line)==3 and line != 'sec': 
      setFolder.append(int(line)) ##appends new dataset to old one 
    setFolder.sort() 
    dataList.append(setFolder) 
+0

Благодарим за ввод, но пока он создает список данных в setFolder, он не добавляет dataList к каждой итерации. Таким образом, на второй итерации или втором диске он имеет как данные от первой, так и второй итераций. –

+1

Вы поместили строку 'setFolder = []' внутри элементов для элементов в groupList: 'loop? –

+0

Это похоже на аналогичную проблему. –

 Смежные вопросы

  • Нет связанных вопросов^_^