在python中写入txt
我正在从另一个文本文件向一个文本文件写入数行。运行时打印的数字看起来不错,但当我打开输出文件时,没有写入任何内容。不知道为什么在python中写入txt,python,text,Python,Text,我正在从另一个文本文件向一个文本文件写入数行。运行时打印的数字看起来不错,但当我打开输出文件时,没有写入任何内容。不知道为什么 min1=open(output1,"w") oh_reader = open(filename, 'r') countmin = 0 while countmin <=300000: for line in oh_reader: #min1 if countmin <=60000:
min1=open(output1,"w")
oh_reader = open(filename, 'r')
countmin = 0
while countmin <=300000:
for line in oh_reader:
#min1
if countmin <=60000:
hrvalue= int(line)
ibihr = line
print(line)
print(countmin)
min1.write(ibihr)
min1.write("\n")
countmin = countmin + hrvalue
min1.close()
min1=打开(输出1,“w”)
oh_reader=open(文件名'r')
countmin=0
当countmin时,您应该使用Python的with
语句来打开文件。它为您处理关闭,通常更安全:
with open(filename, 'r') as oh_reader:
如果这是程序缩进的方式
min1=open(output1,"w")
oh_reader = open(filename, 'r')
countmin = 0
while countmin <=300000:
for line in oh_reader:
# this is the same as having pass here
#min1
if countmin <=60000:
hrvalue= int(line)
ibihr = line
print(line)
print(countmin)
min1.write(ibihr)
min1.write("\n")
countmin = countmin + hrvalue
min1.close()
或者:
min1=open(output1,"w")
oh_reader = open(filename, 'r')
countmin = 0
for line in oh_reader:
#min1
if countmin <=60000:
hrvalue= int(line)
ibihr = line
print(line)
print(countmin)
min1.write(ibihr)
min1.write("\n")
countmin += hrvalue # += operator is equal to a = a + b
min1.close()
min1=打开(输出1,“w”)
oh_reader=open(文件名'r')
countmin=0
对于oh_阅读器中的行:
#min1
如果countmin我不是100%确定逻辑,但我认为这就是你想要的:
IN_FNAME = 'abc.txt'
OUT_FNAME = 'def.txt'
with open(IN_FNAME) as inf, open(OUT_FNAME, 'w') as outf:
total = 0
for line in inf:
val = int(line)
total += val
if total <= 60000:
print('{} -> {}'.format(val, total))
outf.write('{}\n'.format(val))
else:
break
IN_FNAME='abc.txt'
OUT_FNAME='def.txt'
以open(IN_FNAME)作为inf,open(OUT_FNAME,'w')作为OUT:
总数=0
对于inf中的行:
val=int(行)
总计+=val
如果总压痕被破坏。若语句需要右移一步---打印(行)不打印所有文件?我想您需要在oh_reader.readline()中输入行;关于不良缩进的注释对有效。由于oh_reader
将在第一次通过后使用,因此也不需要外部while循环
。@unutbu我假设了这么多,但我不确定OP程序的其余部分。我不想改变太多。我将发布一个替代方案。很明显,OP不是python方面的专家,因此不做任何解释就给出这一点并不能帮助他们学到任何东西。
IN_FNAME = 'abc.txt'
OUT_FNAME = 'def.txt'
with open(IN_FNAME) as inf, open(OUT_FNAME, 'w') as outf:
total = 0
for line in inf:
val = int(line)
total += val
if total <= 60000:
print('{} -> {}'.format(val, total))
outf.write('{}\n'.format(val))
else:
break