【发布时间】:2019-02-11 05:38:33
【问题描述】:
我对 Python 或任何一般的编程语言都很陌生。
供参考:
- 作业
- 我的代码
- 问题
1.) 我的班级的作业是这样的:从文本文件“word.txt”中读取,并将符合条件的第一个文本文件中的单词写入一个新的文本文件。 例如,如果函数是getListEnd('s', 'word.txt', 'word1.txt') 并且条件是ofile中的单词必须都以字符's'结尾,那么我的ifile word.txt =[apples,carrots, cheese, mustard, questions] 会被分类到一个外文 word1.txt=[apples,carrots, questions]
2.) 这是我的代码:
mf1 = open("/Users/XXXX/word.txt", "r")
mf2 = open("/Users/XXXX/word2.txt", "w+")
mylist1=[] #list for storing word.txt strings
mylist2=[] #list for storing sorted strings
def sort(c): #function for sorting mylist1 for
for i in mylist1: criteria into my list2
if c==i[-1]:
mylist2.append(i)
def getListEnd(c, ifile, ofile):
for s in mf1: #loop for appending word.txt to list 1
mylist1.append(s)
print(len(mylist1)) #check if mylist1 contains word.txt
sort(c) #append sorted words to list2
with open('word2.txt', 'w+') as mf2: #write into word1.txt list2
for listitem in mylist2:
mf2.write('%s\n' % listitem)
getListEnd('s', 'word.txt', 'word2.txt')
3.) 所以问题是:为什么每当我尝试将已排序的单词附加到 mylist2 时,什么都没有发生?也就是说,当我检查 mylist2 的长度时,它显示为 0,即使 word.txt 文件中有很多以 s 结尾的单词?我知道在检查 myList1 是否有以最后一个字母 's' 结尾的字符时出错,但我不知道是什么,我无法将其附加到 mylist2。
【问题讨论】:
-
您能否详细说明您的第二条评论@John Gordon?我不确定这到底是什么意思,但是当我尝试编写文件 word2.txt 时它仍然是空的,因为 mylist2 中没有任何内容,所以我想你可能有一个解决方案。
-
查看我的更新答案。