从文件中读取一个单词,一次读取一个字符,然后从字符创建一个单词



所以基本上我必须采用一个命令行参数,它是一个文件,一次读取一个字符。然后,我必须获取字符,并基本上将这些单词重新创建为一个变量,我可以使用该变量传递给稍后将使用的函数。我在尝试创建单词时遇到问题,我将字符添加到空变量然后将其打印出来,但它每次都会在新行而不是完整单词上打印字符

更新::代码有效,但是它基本上打印了一个句子,我需要它来打印单词,所以我尝试添加新的行语句,但这没有任何作用


argc = len(sys.argv)
cmdlength = argc - 1
if cmdlength != 2:
print ("Usage error, expected 2 args got " + str(cmdlength))
exit()
else:
word = ""
with open(sys.argv[1],"r") as fh: 
while True:
ch=fh.read(1)
if not ch:
#print("End of file")
break
word += ch
print(word, "n")

您将word重置为word = "" + ch中的最后一个字符,并在每个循环中打印它。

相反,只需在循环之前将其设置为空字符串一次,每次遇到空格时,在循环中附加到它,并在每个空格之后和退出之前打印一次:

import sys
argc = len(sys.argv)
cmdlength = argc - 1
if cmdlength != 2:
print ("Usage error, expected 2 args got " + str(cmdlength))
exit()
else:
word = ""  # Once before the loop
with open(sys.argv[1],"r") as fh: 
while True:
ch=fh.read(1)
if not ch:
print(word) # print the last word we were building before quitting
print("End of file")
break
if ch == ' ':
print(word)  # We got a space, let's print the word
word = ''    # and reset it to the empty string
else:
word += ch  # we append the last char

最新更新