2016-12-06 4 views
-2

Я хочу прочитать из нескольких файлов .txt в одной папке и прочитать каждую строку в виде списка.Прочтите несколько файлов .txt в одной папке

example name of the files

example content of each file

Это мой код, однако он ничего не печатает.

import glob 
import errno 
path = '/Users/xccxken/PycharmProjects/untitled7/NNRelease/*.txt' 
files = glob.glob(path) 
for name in files: 
    try: 
     with open(name) as f: 
      for line in f: 
       words = list() 
       for word in line.split(): 
        words.append(word) 
    except IOError as exc: 
     if exc.errno != errno.EISDIR: 
      raise 
    print(words) 

Я надеюсь, в результате чего два списка а и б

a=[class,company,family,..] 
b=[size, size, size,...] 

Другой вопрос списки печати содержит некоторые пустые списки, (я думаю, это потому, что оригинальные текстовые файлы имеет пустую строку) Пожалуйста скажите мне, как удалить эти пустые списки. Благодаря!

Кроме того, мне нужно удалить списки, которые содержат «#» спасибо!

ответ

1

Я думаю files может быть пустым. Используйте абсолютный путь, или os.chdir в каталог

import glob 
import errno 
path = 'C:/Users/xccxken/PycharmProjects/untitled7/NNRelease/*.txt' #note C: 
files = glob.glob(path) 
for name in files: 
    try: 
     with open(name) as f: 
      for line in f: 
       print(line.split()) 
    except IOError as exc: #Not sure what error this is 
     if exc.errno != errno.EISDIR: 
      raise 

Чтобы только печать строк с данными

with open(name) as f: 
     for line in f: 
      split = line.split() 
      if split: 
       print(line.split()) 
+0

Спасибо! это работает! –

+0

Другой вопрос списки печати содержит некоторые пустые списки, (я думаю, что это б ecause исходные файлы txt имеют пустую строку) Можете ли вы сказать мне, как удалить эти пустые списки? Спасибо вам большое за ваше время! –

+0

@lyuketing Посмотреть мою статью –

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