|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 脑子 于 2017-12-15 20:44 编辑
希望从有三行数据的txt文档中提取数据,并保存在rawx,insertdatax和insertdatay中。
- rawx=[];insertdatax=[];insertdatay=[];
- fr=open('00.txt')
- line0=0
- for line in fr.readlines():
- lineArr = line.strip().split('\t')
- m=shape(lineArr)
- if line0==0:
- line0=1
- for k in range(m[0]):
- rawx.append(float(lineArr[k]))
- if line0==1:
- line0=2
- for k in range(m[0]):
- insertdatax.append(float(lineArr[k]))
- if line0==2:
- line0=0
- for k in range(m[0]):
- insertdatay.append(float(lineArr[k]))
复制代码
如果txt文档中数据为:
- 1 2 3 4 5 6
- 1.1 1.2 1.3 1.4 1.5
- 1.1 1.2 1.3 1.4 1.5
复制代码
运行后很奇怪:
1.如果我把line0放在外面:
- >>> line0=0#单独先令line0执行为0
- >>> for line in fr.readlines():
- lineArr = line.strip().split('\t')
- m=shape(lineArr)
- if line0==0:
- line0=1
- for k in range(m[0]):
- rawx.append(float(lineArr[k]))
- if line0==1:
- line0=2
- for k in range(m[0]):
- insertdatax.append(float(lineArr[k]))
- if line0==2:
- line0=0
- for k in range(m[0]):
- insertdatay.append(float(lineArr[k]))
-
- >>> rawx
- [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.1, 1.2, 1.3, 1.4, 1.5]
- >>> insertdatax
- [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.1, 1.2, 1.3, 1.4, 1.5]
- >>> insertdatay
- [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.1, 1.2, 1.3, 1.4, 1.5]
- >>>
复制代码
2.如果我把line0放在里面执行:
- >>> fr=open('00.txt')
- line0=0#没有提前一步赋值
- for line in fr.readlines():
- lineArr = line.strip().split('\t')
- m=shape(lineArr)
- if line0==0:
- line0=1
- for k in range(m[0]):
- rawx.append(float(lineArr[k]))
- if line0==1:
- line0=2
- for k in range(m[0]):
- insertdatax.append(float(lineArr[k]))
- if line0==2:
- line0=0
- for k in range(m[0]):
- insertdatay.append(float(lineArr[k]))
-
- >>>
- >>> line0
- 0
- >>> rawx
- []
- >>> insertdatax
- []
- >>> insertdatay
- []
复制代码
请问:
两次结果为什么不一样?
谢谢!
而且line0不能在if条件满足后修改,而应该在每一次循环中修改
rawx=[];
insertdatax=[];
insertdatay=[];
fr=open('00.txt')
line0=0
for line in fr.readlines():
lineArr = line.strip().split('\t')
print(lineArr)
m=[len(lineArr)]
if line0==0:
for k in range(m[0]):
rawx.append(float(lineArr[k]))
if line0==1:
for k in range(m[0]):
insertdatax.append(float(lineArr[k]))
if line0==2:
for k in range(m[0]):
insertdatay.append(float(lineArr[k]))
line0 += 1
|
|