各位高手大家好,因工作需要近期我在尝试写一个脚本: 想要实现以下功能:
从本机指定位置的TXT中读取信息,并存进一个列表numberL之中
逐个处理列表numberL的元素,并将每次处理的单个元素放到单一元素列表a 之中
将已经处理完的元素统统放到列表done 之中
循环2-3 直至numberL中的元素被全部处理完为止
代码如下:
file_path = "D:/PN_TXT/PN_test.txt." # 设置路径
with open(file_path) as file_PN: # 打开文件
lines = file_PN.readlines() #读取文件
PN = ''
for line in lines:
PN +=line.strip() # 将文件置入一行之中
print(PN)
done = []
number = ()
numberL = list(number)
numberL.append(PN)
while len(numberL) > 0:
a= numberL.pop()
done.append(a)
print(a)
print(done)
预计实现的效果类似这样:
而最终实现的效果却是这样:
朋友,看你的代码貌似跟你的中文描述不大一样。而且有点繁琐,很多变量根部不需要啊
#从本机指定位置的TXT中读取信息,并存进一个列表numberL之中
file_path = "D:/PN_TXT/PN_test.txt."
with open(file_path) as file_PN:
lines = file_PN.readlines()
numberL=[]
done=[]
for line in lines:
PN =line.strip() #原来写的是PN +=line.strip() ,加等干嘛,不是只读一行吗?加等就一行接一行,所有行全写再PN里面了
numberL.append(PN)
#将每次处理的单个元素放到单一元素列表a 之中
#while len(numberL) > 0:
#a= numberL.pop()这写法是指numberL删除末尾元素,然后其余赋值给a,这样你的a就是会出现类似这样的情况,第一次a=。。。。。 第二次a=。。。。第三次a=。。。第四次a=。。(这样说你懂了吧?)
#实际你只想让a的每一个元素记录一个numberL元素
#那么a就可以不用了啊,因为你可以用numberL[i]来表示numberL当中的一个元素,为啥还要一个单一元素列表呢?
#你要print(a)实际上可以写成print(numberL[指定第几个])
#最终可以改成这样的循环
for i in range(len(numberL)):
#在这加上你对numberL的元素的处理操作,假设处理完存放在done里面就可以写 done[i].append(对numberL[i]的操作)
#假设没有什么处理就写
done.append[numberL[i]]
print(done[i])#这里可以实现你的print(a)这句话
print(done)
你循环的部分没有问题,你可以用一个列表测试,问题在你前面的代码,那部分我没看明白,一个文件处理为一行又放到数组?那不是只有一个元素?