到目前为止,我得到了这个......
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的初学者。感谢
答案 0 :(得分:2)
第一次迭代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)
或者,您可以使用seek
手动将文件对象回滚到其开始状态:
with open('d:\word_list.txt', 'r') as inF:
b = input('Enter word: ')
for letter in b:
inF.seek(0)
for item in inF:
if item.startswith(letter):
print(item)
答案 1 :(得分:0)
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{
}
});
});
您可以将其称为node your_script_name.js b
,将所有以b
开头的字词保存到名为letters/b.txt
答案 2 :(得分:0)
您可以通过文件中的单词列表打印所有以给定单词中的任何字母开头的单词:
#!/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='')