将【【】,【】,【】,【】】类似的双列表数据写入txt,txt写入和读取

问题:

有一组类似如下的数据:

【【‘1‘,’2‘】,【】,【】,【】,【】】

需求:

想把这组数据写入txt

问题:

按照正常的txt写入方法尝试时候,再读取的时候无法读取出双列表形式,而是转为str


解决:


参考:(2条消息) python 将列表里面的内容写入到txt文件中_花开 流年的博客-CSDN博客_python将列表写入txt文件

u = [['mov', 'push', 'push', 'call', 'push', 'push', 'push', 'call'],['pop', 'push', 'call', 'pop', 'retn', 'mov', 'push', 'call', 'push'],['push', 'push', 'call', 'pop', 'call', 'pop', 'retn', 'mov', 'push'], ['lea', 'push', 'call', 'test', 'jnz', 'push', 'push']]

def text_save(filename, data):         #filename为写入txt文件的路径,data为要写入数据列表.
    file = open(filename,'a')
    for i in range(len(data)):
        s = str(data[i]).replace('[','').replace(']','')       #去除[],这两行按数据不同,可以选择
        s = s.replace("'",'').replace(',','') +'\n'             #去除单引号,逗号,每行末尾追加换行符
        file.write(s)
    file.close()
    print("保存文件成功") 

text_save('N_aa.txt',u)

或者:

t=''
with open ('N_a.txt','w') as q:
    for i in u:
        for e in range(len(i)):
            t=t+str(i[e])+' '
        q.write(t.strip(' '))
        q.write('\n')
        t=''
 

结果:

 
a=[['1','9'],['2','5'],['3','3'],['2','4'],['4','3'],['1','8'],['1','9']]

t=''
with open ('N_a.txt','w') as q:
    for i in a:
        for e in range(len(a[0])):
            t=t+str(i[e])+' '
        q.write(t.strip(' '))
        q.write('\n')
        t=''


写在中间:

最终!储存正确的代码如下:

data=pd.read_csv(file)

list_1=【】

num=data.shape[1]

for i in range(num):

        d=data[i].values.tolist()   循环第i列数据 变为列表

        d_1=str(d).replace(" ' " ,' ')  去掉引号

        list_data=[n for n in d_1.replace('[' , ' ').replace( ' ] ' , ' ').split(" , ")  去掉双括号

        list_1.append(list_data) 添加到列表中


list_1最后模式:【【】,【】,【】,【】,【】,【】,【】......】

保存到txt:

with open(path + 'filename.txt' ,'w')as f:

        for i in range (len(list_1)):

                s= " ".join(list_1[i]) + "\n"  以空格为分隔符 分开数据,一列保存为一行,行尾加\n分隔符

                f.write(s)

                f.close()

txt:

1 2 3 4 5 6 

4 5 6 7 8 9  保存为这种格式(数据用空格隔开)


打开:

def get_lines(file_name):

        with open (file_name , "r") as f :

                for line in f . readlines():

                        yeild line

l=[]

for line in get_lines(file_name):

        word_list=line.strip().split()

        l.append(word_list)

l_1=np.array(l)



ps:写入txt方法:

(1)

f=open(file_path,mode=' ')

f.write()

f.close()

(2)

with open(file_path,mode='  ') as f:

f.write()

f.close()

mode:

r :   读取文件,若文件不存在则会报错

w:   写入文件,若文件不存在则会先创建再写入,会覆盖原文件

a :   写入文件,若文件不存在则会先创建再写入,但不会覆盖原文件,而是追加在文件末尾

rb,wb:  分别与r,w类似,但是用于读写二进制文件

r+ :   可读、可写,文件不存在也会报错,写操作时会覆盖

w+ :   可读,可写,文件不存在先创建,会覆盖

a+ :  可读、可写,文件不存在先创建,不会覆盖,追加在末尾


ps:读取方法 read readline readlines

read()    一次性读全部内容

一次性读取文本中全部的内容,以字符串的形式返回结果

readline()    读取第一行内容

只读取文本第一行的内容,以字符串的形式返回结果

readlines()     列表

读取文本所有内容,并且以数列的格式返回结果,一般配合for in使用

readlines会读到换行符,可用如下方法去除:

with open("test.txt", "r") as f:
    for line in f.readlines():
        line = line.strip('\n')  #去掉列表中每一个元素的换行符
        print(line)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值