这是id.txt文件,一共有4927行,保持原有行数字不变,现在我需要将其扩展到14457行,并且新出现的每行的数字逐渐增大,为了方便,我就设定每行增加1。
错误代码1
f = open('/home/xbwang/xingyu/data/sick/test/id.txt','r') a = f.readlines()[4926:] b = int(a) for i in range(9600): b = b+1 f1 = open('/home/xbwang/Desktop/id.txt','a') f1.write(a+' ')
这个会在 b=int(a)这一行报错,TypeError:int() argument must be a string or a number,not 'list'
readlines返回的是一个list,print一下会发现是[‘9996 ’]
错误代码2
f = open('/home/xbwang/xingyu/data/sick/test/id.txt','r') a = f.readlines()[4926:][0] print a b = int(a) for i in range(9600): b = b+1 f1 = open('/home/xbwang/Desktop/id.txt','a') f1.write(a+' ')
你会发现经过[0]处理后,a变成了'9996 '。list消失了,但这个字符串中还有 ,必须去掉
错误代码3
f = open('/home/xbwang/xingyu/data/sick/test/id.txt','r') a = f.readlines()[4926:][0] b=a.strip() print b c = int(b) for i in range(9600): c = c+1 f1 = open('/home/xbwang/Desktop/id.txt','a') f1.write(c+' ')
c为int型,不能+字符串' '。并且就算是只写c也是错的,write函数的参数必须是字符串或字符
错误代码4
f = open('/home/xbwang/xingyu/data/sick/test/id.txt','r') a = f.readlines()[4926:][0] b=a.strip() print b c = int(b) for i in range(9600): c = c+1 f1 = open('/home/xbwang/Desktop/id.txt','a') f1.write('c'+' ')
这样写会造成后面新生成的行都是c,因为你写的是c字符,而不是c参数
正确代码
f = open('/home/xbwang/xingyu/data/sick/test/id.txt','r') a = f.readlines()[4926:][0] b = a.strip() c = int(b) print c for i in range(9600): c = c+1 print c f1 = open('/home/xbwang/Desktop/id.txt','a') f1.write(str(c)+' ')