当前代码:
f1 = open("input.txt",'r')
f2 = open("output.txt",'w')
for i in f1.readlines():
parts = i.split(":")
if parts[2] > 4000 :
f2.write(i)
f1.close()
f2.close()
嗨,我一直在尝试,但我无法让我的代码工作,看到我的这个问题是如何编写的,真是太棒了。基本上我有一个包含字符串,delimeter(:)和值的测试文件。 例如:
maxwalker2004:0
maxterix:564
maxxorclank8:1313
maxxie100:0
maxxman390:45
maxxor51:0
maxy234567890:20
maxxy35:0
maxyboy2010:0
maxydupo:297
maxyoops57:748
maxy088:0
maxychamp9:132
maxymillio:0
mayapooh514:0
mayelistar:0
mayer48:425
mayasissy461:0
mayowastar:0
mays12345:332
mayna2cute:0
mayyah3:0
mazefire3609:4088
mbjewett:0
mbbvcac77:0
mbakkertje:0
mbieber11:0
mbiles:5497
mbomb56:797
mcadamslance:0
mcake123:0
mcarlin99:486
mburnsb1:0
mcash225:0
mb1005263:0
mazi23:5497
mbz360:0
mccayleigh:0
mccoyzachary21:0
mcbloom8:259
mcd2315:0
mcdude22:1305
mccurdy03:8275
mcdino13:0
mcdudu45:355
mcethan25:0
mcfootball10:26130
正在从.txt file1
读取这些行。我希望将值大于4000的值(字符串:值)的所有行写入第二个输出文件(file2)
其余的被忽略了。
不确定,但无法让它发挥作用...... 谢谢,谢谢
答案 0 :(得分:0)
f1 = open("file1", 'r') # Opening file1
f2 = open("file2", 'w') # Opening file2
for i in f1.readlines(): # Iterating through file1 line by line
if int(i.split(':')[-1]) > 4000: # Splitting the string by ':'
f2.write(i)
f1.close()
f2.close()
试试这个
答案 1 :(得分:0)
仅在:
分割一次,并在尝试制作int
之前验证它是否为整数。
for line in f1.readlines():
key, value = line.split(':', 1)
if value.isdigit() and int(value) > 4000:
f2.write(line + '\n')
或者与上下文管理员一起:
with open('file1', 'r') as in_file:
with open('file2', 'w') as out_file:
for line in in_file.readlines():
key, value = line.split(':', 1)
if value.isdigit() and int(value) > 4000:
out_file.write(line + '\n')
答案 2 :(得分:0)
检查它是否适用于这种情况:
if int(parts[1]) > 4000 :