简体   繁体   中英

load words from file and make a list of that

My idea is to load words from a directory (contains A Words.txt- Z Words.txt) and copy it into a list. The below code works, but adds "\\n" at the end of each word (example ["apple\\n", "abort\\n"] ); can anybody suggest a way to fix it?

from io import *
import string

def load_words(base_dir):
words = []
for i in string.uppercase:
    location = base_dir+"\\"+i+" Words.txt"
    with open(location, "rb+") as f:
        words += f.readlines()
return words

Explicitly strip newlines using str.rstrip :

def load_words(base_dir):
    words = []
    for i in string.uppercase:
        location = base_dir+"\\"+i+" Words.txt"
        with open(location, "rb+") as f:
            for line in f:                      # <---------
                words.append(line.rstrip())     # <---------
            # OR words.extend(line.rstrip() for line in f)
    return words

change

words += f.readlines()

to :

words += [x.strip() for x in f.readlines()]

strip() removes trailing and leading whitespace charachters.

Try this. Hope it helps.

from io import *
import string

def load_words(base_dir):
words = []
for i in string.uppercase:
    location = base_dir+"\\"+i+" Words.txt"
    with open(location, "rb+") as f:
        for i in f.readlines():
            words.append(i.strip())
return words

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM