Python 3.x 在文本文件单词列表中搜索,并检查以我输入的每个字母开头的所有单词
到目前为止我得到了这个Python 3.x 在文本文件单词列表中搜索,并检查以我输入的每个字母开头的所有单词,python-3.x,Python 3.x,到目前为止我得到了这个 with open('d:\word_list.txt', 'r') as inF: b = input('Enter word: ') for letter in b: for item in inF: if item.startswith(letter): print(item) 如果我键入“zucaritas”,此代码只打印以“z”开头的单词,而不打印其他字母“u”、“c”等。我要检查列表中以我要键入的每个字母开头的所有单词。 我能做什么?
with open('d:\word_list.txt', 'r') as inF:
b = input('Enter word: ')
for letter in b:
for item in inF:
if item.startswith(letter):
print(item)
如果我键入“zucaritas”,此代码只打印以“z”开头的单词,而不打印其他字母“u”、“c”等。我要检查列表中以我要键入的每个字母开头的所有单词。
我能做什么?顺便说一下,我是python的初学者。谢谢第一次遍历
inF
会耗尽它,不能再遍历了。因此循环将只对b
中的第一个字母执行
对于b
中的每个字母,可以通过重复打开文件来获得新的文件对象:
b = input('Enter word: ')
for letter in b:
with open('d:\word_list.txt', 'r') as inF:
for item in inF:
if item.startswith(letter):
print(item)
或者,您可以手动将文件对象回放到其开始状态,方法是:
节点JS脚本
您可以像调用
节点your_script_name.js b
那样调用该节点,将以b
开头的所有单词保存到名为letters/b.txt
的文件中。您可以在文件的单词列表中一次性打印以给定单词的任何字母开头的所有单词:
#!/usr/bin/env python3
letters = tuple(input('Enter word: ')) # startswith() can work with a tuple
with open(r'd:\word_list.txt') as file:
for word in file:
if word.startswith(letters): # if word starts with any of the letters
print(word, end='')
这是你的真实代码吗?您似乎在
输入
行中缺少引号。“仅打印以“z”开头的单词,而不打印其他字母”。你的意思是,这就是你想发生的事情,但它没有发生?或者这就是正在发生的事情,但你不希望发生这种情况?@Kevin:不需要对文件进行多次迭代,你可以这样做。
var fs = require("fs");
var letter = process.argv[2];
var writeStream = fs.createWriteStream("./letters/" + letter + ".txt");
fs.createReadStream("./word_list.txt").on("data", function(chunk){
var words = chunk.toString().split("\n");
words.forEach(function(word){
var firstLetter = word.charAt(0);
if(firstLetter == letter || firstLetter == letter.toUpperCase()){
console.log(firstLetter);
writeStream.write(word + "\n");
console.log("wrote " + word);
}else{
}
});
});
#!/usr/bin/env python3
letters = tuple(input('Enter word: ')) # startswith() can work with a tuple
with open(r'd:\word_list.txt') as file:
for word in file:
if word.startswith(letters): # if word starts with any of the letters
print(word, end='')