[英]How to read and write code output into a text file line by line
例如,我的文本文件中的列表如下所示:
1,2.12,3.123
然后将其打印到我的输出文本文件(每个数字的小数位):
Line 1: INVALID VALID INVALID
但是,如果我的文本文件中的列表是这样的:
1,2.12,3.123
1,1.00
然后将其打印到我的输出文本文件中:
Line 1: Line 2: INVALID
VALID
INVALID
Line 3: Line 4: INVALID
VALID
INVALID
我如何将其打印到我的输出文本文件中:
Line 1: INVALID VALID INVALID
LINE 2: INVALID VALID
我试图添加一个索引=索引+1,以便它可以将1添加到每一行。
from functools import reduce
res = 0
outfile = "output2.txt"
baconFile = open(outfile,"wt")
index = 0
invalid_string = "INVALID"
valid_string = "VALID"
for line in open("file.txt"): # read file line-by-line
carrera = ''
index = index +1 # Count lines that contain what the command wants
print("Line {}: ".format(index))
baconFile.write("Line {}: ".format(index))
with open('file.txt') as file:
number_list = file.readline().strip().split(',')
for line in number_list:
if len(line.split('.')[-1]) == 2:
# res += 1
## print("VALID")
carrera = valid_string
if len(line.split('.')[-1]) != 2:
#res += 1
carrera = invalid_string
print (carrera)
baconFile.write(carrera + " ")
# print(res)
baconFile.close()
预期:
Line 1: INVALID VALID INVALID
LINE 2: INVALID VALID
实际:
Line 1: Line 2: INVALID
VALID
INVALID
Line 3: Line 4: INVALID
VALID
INVALID
使用file中的for line in file
遍历文件中的每一行,并使用print('...', end='')
for line in file
不换行的情况下进行print('...', end='')
。 不要open()
两次。
res = 0
outfile = "output2.txt"
baconFile = open(outfile,"wt")
index = 0
invalid_string = "INVALID"
valid_string = "VALID"
index = 1
with open('file.txt') as file:
for line in file:
print("Line {}: ".format(index), end='')
baconFile.write("Line {}: ".format(index))
number_list = line.strip().split(',')
for number in number_list:
if len(number.split('.')[-1]) == 2:
#res += 1
## print("VALID")
carrera = valid_string
if len(number.split('.')[-1]) != 2:
#res += 1
carrera = invalid_string
print (carrera, end='')
baconFile.write(carrera + " ")
print('\n', end='')
baconFile.write('\n')
index += 1
(对于其他回答者:我避免enumerate
因为代码中已经包含index
。)
我对格式进行了一些修改:
res = 0
outfile = "output2.txt"
baconFile = open(outfile,"wt")
index = 0
invalid_string = "INVALID"
valid_string = "VALID"
with open('file.txt') as file:
for line in file:
index = index +1
o = "Line {}: ".format(index)
number_list = line.strip().split(',')
for x in number_list:
if len(x.split('.')[-1]) == 2:
o += valid_string + " "
if len(x.split('.')[-1]) != 2:
o += invalid_string + " "
print(o)
baconFile.write(o + "\n")
baconFile.close()
编辑:意外地将'carrera'变量留在那里,以为我可以将其编辑掉,因为它不再具有用途
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.