我有一个任务,我的任务是测量Python读取infile所需的时间,然后在outfile中为in-file中的每个字符写一些'a':s。我的代码如下所示:
import time
#opening input file for reading and output file for writing
#assume in.txt file created e.g. from cmd.exe using command:
# fsutil file createnew in.txt 20000000
#which creates a text file of ~20MB filled with dots.
#double backslash is required as escape character on Windows
inputFile = open('C:\\Users\\Benson\\in.txt', 'r')
outputFile = open('C:\\Users\\Benson\\out.txt', 'w')
start_time = time.time()
for i in range(1, 100):
while True:
#reading file by 1 character
ch=inputFile.read(1)
#end loop if no more characters left
if not ch: break
#for every character read - write an 'a' to output
outputFile.write('a')
print("%s" % (time.time() - start_time))
但是,当我运行程序时,我发现文件中的字符数与文件中的字符数不对应。对于文档中我使用了哈利波特和密室的摘录,大约1300个单词。但是输出文件只包含99个'a':s,而它们应该大约为1300个,或者总共为1300个。我做错了什么?
答案 0 :(得分:0)
你的for循环是1,100,这将给你99次读取。请尝试使用,
`For i in inflile:'
更改您的代码以使用i。我将成为文件的一行,默认情况下将是新行的所有字符。