注册 登录
编程论坛 Python论坛

[求助]这段代码该怎么改?

阿智兄 发布于 2021-03-26 00:46, 1623 次点击
非常感谢你在百忙之中为我解答。问题如下:
打开文件时只对冒号后部分进行了读取,写入文件时如何将冒号前面部分也一起写进去?
f=open('data.txt','r+')
data=[i.strip().split(":")[1].split(',') for i in f]
f.close()

def output(filename,content):
    f=open(filename,'w+')
    for i in content:
        f.write(i.split(":")[0]+','.join(i)+'\n') #这句代码错了,不知道怎么改。
    f.close()
4 回复
#2
fall_bernana2021-03-26 08:36
以下是引用阿智兄在2021-3-26 00:46:13的发言:

非常感谢你在百忙之中为我解答。问题如下:
打开文件时只对冒号后部分进行了读取,写入文件时如何将冒号前面部分也一起写进去?
f=open('data.txt','r+')
data=.split(',') for i in f]
f.close()

def output(filename,content):
    f=open(filename,'w+')
    for i in content:
        f.write(i.split(":")[0]+','.join(i)+'\n') #这句代码错了,不知道怎么改。
    f.close()

程序代码:

def output(filename,content):
    f=open(filename,'w+')
    for i in content:
        f.write(i.split(":")[0]+','.join(i)+'\n') #这里对于split来说i是个字符串,对于join来说i 是个数组。你想让他是个啥东西
    f.close(
#3
阿智兄2021-03-26 08:46
谢谢回复。
      
f=open('data.txt','r+')
data=[i.strip().split(":")[1].split(',') for i in f]   这在读取文件时只读取了冒号后面部分的数据,我想在写入文件时把冒号的前部分也一起输出。
f.close()

def output(filename,content):
    f=open(filename,'w+')
    for i in content:
        f.write(i.split(":")[0].join(i)+'\n')  也就是这句代码,要改为将冒号前后两部分的数据都一起输出来。
    f.close()
#4
fall_bernana2021-03-26 09:45
回复 3楼 阿智兄


f=open('data.txt','r+')
data=[i.strip().split(":")[1].split(',') for i in f]   这里你的冒号前的数据已经丢了,你可以把操作写在这里
output(filename,data)
f.close()

def output(filename,content):
    f=open(filename,'w+')
    for i in content:
        f.write(i+'\n')  也就是这句代码,要改为将冒号前后两部分的数据都一起输出来。
    f.close()

程序代码:

f=['1:2,3']
data=[i.strip().split(":")[0]+':'+'#'.join(i.strip().split(":")[1].split(',')) for i in f]
print(data)

['1:2#3']
#5
阿智兄2021-03-26 10:22
谢谢你的再次回复。测试了,没有达到预定的效果,不知是哪里的问题?
下面是代码处理的全过程:
程序代码:

def check(n):
    temp = int(n)//10+int(n)%10
    if temp %2:
        return '1'
    else:
        return '0'

def output(filename,content):
    print(filename,content,'\n')

def output(filename,content):
    f=open(filename,'w+')
    for i in content:
        f.write(','.join(i)+'\n')
        f.write(data)
    f.close()
        
f=open('data.txt','r+')
data=[i.strip().split(',') for i in f]
f.close()

index1=[tuple(map(lambda x:check1(x),i)) for i in data]
indexdict1=dict([[i,[]] for i in set(index1)])
for i,j in zip(data,index1):
    indexdict1[j].append(i)
for i in indexdict1:
    output(''.join(i)+'.txt',indexdict1[i])


[此贴子已经被作者于2021-3-26 22:30编辑过]

1