Невозможно записать несколько файлов в Python - PullRequest
0 голосов
/ 01 декабря 2018

Я работаю над проектом, в котором мне нужно предварительно обработать каждый файл в папке, и я должен записать данные предварительной обработки в тот же файл.Здесь я сохранил все пути к файлам в переменной path , а также распечатал, и он показал все пути, сохраненные в этой переменной.Когда я открываю файл в режиме записи для записи, передавая переменную пути в file_write , тогда он не записывает данные предварительной обработки, но когда я даю правильный путь, передавая переменную file_write Затем сам записывает данные предварительной обработки.

import os
import codecs
import nltk
from nltk.corpus import stopwords 
import re
from nltk.tokenize import RegexpTokenizer
from nltk import word_tokenize, pos_tag
from nltk.stem import PorterStemmer 
from nltk.stem.lancaster import LancasterStemmer
from nltk.stem import WordNetLemmatizer
from nltk.stem.wordnet import WordNetLemmatizer
from collections import defaultdict
from nltk.corpus import wordnet as wn
import glob

file_list = glob.glob('/home/ravi/Downloads/sem1/NLC/Project/gutenberg/*.txt')
file = list(enumerate(file_list)) # this is dictionary created having the filenames and indexing as well.
file = list(enumerate(file_list))
count = 0
file_read=[]
filtered_sentence = [] 
a =""
index = ""
path = ""
s = RegexpTokenizer(r'\w+')
tag_map = defaultdict(lambda : wn.NOUN)
tag_map['J'] = wn.ADJ
tag_map['V'] = wn.VERB
tag_map['R'] = wn.ADV
lmtzr = WordNetLemmatizer()
lemma=[]
pstem = PorterStemmer()
for i in file:
    path = i[1]
    ex_path = "/home/ravi/Downloads/sem1/NLC/Project/gutenberg/austen-emma.txt"
    file_write = open("ex_path","w")
    print(path)
    if os.path.exists(path):
        with codecs.open(str(path),'r',encoding='utf-8',errors='ignore') as f:
            file_read=f.read()
            tokens = s.tokenize(file_read.lower())
            stop_words = set(stopwords.words('english'))
            for w in tokens: 
                if w not in stop_words: 
                    filtered_sentence.append(w)
            for token, tag in pos_tag(filtered_sentence):
                lemma = lmtzr.lemmatize(token, tag_map[tag[0]])
                stm = pstem.stem(lemma)
                #print(token, "=>", lemma, "=>" ,stm)
                file_write.write(" "+lemma+" ")
...