2017-05-04 82 views
-2

我已经完成了研究并且一直无法找到解决我的问题的方法。基本上我希望我的代码能够完成与现在一样的工作,但我希望能够用文本文件替换我的句子变量。这里是我当前的代码:试图使用文本文件而不是字符串变量

from collections import OrderedDict 
sentence= ("I met a traveller from an antique land, Who said Two vast and     trunkless legs of stone. Stand in the desert. . . . Near them, on the sand, Half sunk a shattered visage lies, whose frown, And wrinkled lip, and sneer of cold command, Tell that its sculptor well those passions read Which yet survive, stamped on these lifeless things, The hand that mocked them, and the heart that fed; And on the pedestal, these words appear: My name is Ozymandias, King of Kings; Look on my Works, ye Mighty, and despair! Nothing beside remains. Round the decay Of that colossal Wreck, boundless and bare The lone and level sands stretch far away.").lower() 
words = sentence.split(' ') 
lst = list(OrderedDict.fromkeys(words)) 
numberLst = [] 
for i in words: 
    numberLst.append(lst.index(i)+1) 

words_str = ':'.join(words) 
numberLst_str = ':'.join(str(e) for e in numberLst) 

file = open("words.txt","w") 
file.write(words_str) 
file.close() 

file=open("numberlst.txt","w") 
file.write(numberLst_str) 
file.close() 

joinlst = " ".join(lst[i-1] for i in numberLst) 

file=open("joinlst.txt","w") 
file.write(joinlst) 
file.close() 

choice = input ("do you want to uncompress or compress the text file (type compress or uncompress)") 
if choice == "compress": 
    print (numberLst) 
else: 
    if choice == "uncompress": 
     print (joinlst) 

print("your choice was",choice) 

回答

0

这将读取文件的全部内容filename到变量sentence。请注意,sentence还将包含任何换行符(或其他奇怪的编码垃圾),您可能需要用split(...)和/或trim(...)调用过滤掉。

sentence = "" 
with open(filename, 'r') as f: 
    sentence = f.read() 
+0

欢呼m8cheers m8cheers m8cheers m8cheers m8cheers m8cheers m8cheers m8cheers m8cheers m8cheers m8cheers m8cheers m8cheers m8cheers m8cheers m8cheers m8cheers m8cheers m8cheers m8cheers m8cheers m8cheers m8cheers m8cheers M8 – alibongo

+0

@alibongo很高兴我能帮助!请投票发表帖子,并选择它作为答案,如果它的工作:) – Treebasher

0
with open("some_text_file.txt", "r") as text: 
    for line in text: 
     #do your thing 

将在顶部和使用的线路从你的代码替换句子。

相关问题