Python 3.6从文本文件中删除不以元音开头的单词

Python 3.6从文本文件中删除不以元音开头的单词,python,Python,我正在学习Python 3.6。我想知道如何从文本文件中删除不以读入元音开头的单词。我已经有一个名为someStates.txt的文本文件,所以我现在不必从路径中读取 当我运行代码时,我得到了未定义的someState.txt。我希望输出创建一个包含不以元音开头的单词的文本文件 我做错了什么 infile = open('someStates.txt', 'r') infile.close() vowels = ('a', 'e', 'i', 'o', 'u','y','A','E','I',

我正在学习Python 3.6。我想知道如何从文本文件中删除不以读入元音开头的单词。我已经有一个名为
someStates.txt
的文本文件,所以我现在不必从路径中读取

当我运行代码时,我得到了未定义的
someState.txt
。我希望输出创建一个包含不以元音开头的单词的文本文件

我做错了什么

infile = open('someStates.txt', 'r')
infile.close()

vowels = ('a', 'e', 'i', 'o', 'u','y','A','E','I','O','u','Y') 

filteredStates.txt = [state
                    for state in someStates.txt
                      if state[0].rstrip().lower()
                        not in vowels] 
infile = open('filteredStates.txt','w')
infile.close()
print( 'infile')
这不是它的工作原理;)

open()
返回一个文件对象:

然后,可以使用
data=infle.read()
从文件对象将数据转换为字符串变量。(请在关闭文件之前执行此操作。)

然后需要使用
words=data.split()
将字符串拆分为单词。只有在这之后,你才能循环单词。

'' 我是新来的,这里有很多建议,这就是我得到的

'''


变量名中不能有
。只需使用
filteredStates
。在完成读取之前,不要关闭
infle
文件对象
someStates.txt
不是打开文件对象的变量名,它只是文件名。您想使用
infle
而不是
someStates.txt
,并在循环后关闭文件。为什么元音中有
Y
?而且
u
两次放在小写字母中
infile = open('someStates.txt', 'r')
infile.close()


                    for state in someStates.txt
#input

infile = open('someStates.txt', 'r') # read in a text file frome my directory

#process

filterState=[line.rstrip() for line in infile] 
infile.close() 

vowels = ('a', 'e', 'i', 'o', 'u','y','A','E','I','O','U','Y')

filterState=[state for state in filterState
                      if state[0].rstrip().lower()
                      not in vowels]
infile.close()


#output


print(filterState)