from sys import argv
script, filename = argv
print ("We're going to erase %r" % filename)
print ("If you don't want to do that, press CTRL-C (^C)")
print ("If you do want that, hit RETURN.")
input("?")
print ("Opening the file...")
target = open(filename, 'r+')
print ("Truncating the file. Goodbye!")
target.truncate()
print ("Enter two lines: ")
line1 = input("Line 1: ")
line2 = input("Line 2: ")
print ("I'm going to write those to the file")
target.write(line1)
target.write('\n')
target.write(line2)
print (target.read())
print ("Closing file")
target.close()
当我运行脚本时,编译器的行为就像没有打印(target.read())行。如果我在该行之前关闭目标,然后像说txt = open(filename,'r +')那样创建新变量,然后打印(txt.read()),它将起作用。有人可以解释为什么它不能像我上面那样工作吗?
答案 0 :(得分:1)
认为使用文件有两个指针,一个是文件本身的变量,第二个是指向文件当前位置的指针。
您首先onLoad: function(){current.iframeLoaded(this);}}
将文件清空内容,指针位于文件的第一个字符。
然后您给出3条target.truncate
命令,当该命令完成时,指针将移动到每行的末尾。
最后,您尝试使用target.write
。此时,光标位于文件的末尾,并且从该点开始没有任何内容可读取。如果要读取文件的内容,则需要关闭然后重新打开文件,或者执行实际操作之前,执行target.seek(0)
将指针移到文件的开头到第0个字节。 target.read
。
答案 1 :(得分:0)
在文件中写入和读取内容时,将更改文件指针。在这种情况下,您正在读取文件中的最后一个位置。
您可以在read()之前添加此行,以更改文件中第一个位置的指针。
target.seek(0)
答案 2 :(得分:0)
看起来对我有用。
for i in value['result']:
print('POSTCODE: {} England REGION: {}'.format(i['postcode'], i['region']))
POSTCODE: CB3 0FA England REGION: East of England
POSTCODE: CB3 0GT England REGION: East of England
POSTCODE: CB3 0FT England REGION: East of England