2016-11-22 1 views
0

Я хочу хранить мои файлы из папки в массивах 2d, это означает: слова являются моими столбцами и для каждого файла есть строка. это мой код, но слова хранятся в массиве неправильно, что мне делать? , например: файл 1: Привет Python файл 2: до свидания C++ я ожидать в строке 1 магазине Привет в колонке 1 и питона в колонку 2 и в строке 2 магазина до свидания в колонке 1 и C++ в колонке 2Как хранить текстовые файлы из каталога в 2d массивах в python?

j=0 
i=0 
adress="" 
import os, sys 

# Open a file 
path = 'E:/corpus' 
dirs = os.listdir(path) 

# This would print all the files and directories  
for files in dirs: 
    print files 
    j=0 
    i=i+1 
    my="" 

    adress='E:/corpus/'+files 
    with open(adress, 'r') as myfile: 
     for myline in myfile: 
      for word in myline.split(" "): 
       my=my+" "+word 

    data=my.split(" ") 
    for mydata in data: 
     mylist[i][j]=mydata 
     j=j+1 
+0

Используйте вместо этого словарь. Управление будет намного проще, чем список с несколькими измерениями. – NinjaGaiden

+0

Какой результат вы ожидаете? – Setop

+0

@Setop У меня есть одна папка с 300 текстовыми файлами. Я хочу хранить слова файлов в массиве 2d, это значит, что в моем 2d массиве я ожидаю для каждого файла одну строку, в которой хранятся слова в столбцах: например: file 1: hello python, file 2: bye C++, я ожидаю, что в первом столбце хранилища будет один столбец, а python - в столбце два, а в строке два - в столбце один и C++ в столбце два – missnabat

ответ

0

Я нашел ответ, наконец, этот файл 100 txt для хранения треков образует папку в 100 строках массива, а слова каждого файла являются столбцами этого массива.

n=100 
mylist=[] 
tempstring="" 
row=0 


import os, sys 

# Open a file 
path = 'E:\corpus' 
dirs = os.listdir(path) 

# This would print all the files and directories  
for files in dirs: 


    print files 


    adress='E:/corpus/'+files 
    with open(adress, 'r') as myfile: 
     for myline in myfile: 
      for word in myline.split(" "): 

       tempstring=tempstring+" "+word 

    a=0 
    temparray=tempstring.split(" ") 
    for i in xrange(row,row+1): 


     mylist.append([]) 

     for data in temparray: 

      mylist[i].append(data) 
      a=a+1 
    if(a==len(temparray)): 
     row=row+1 
     tempstring="" 
Смежные вопросы