保存不带第一个和最后一个双引号的文件

2024-04-20 09:01:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图将数据保存到一个文件中。我的问题是我保存的文件在第一行和最后一行包含双引号。我试过很多方法来解决这个问题结构更换(),strip,csv到json,pickle。然而,这个问题仍然存在。我被它困住了。请帮帮我。我将在下面详述我的问题。你知道吗

首先,我有一个文件叫做角度.txt就像这样:

{'left_w0': -2.6978887076110842, 'left_w1': -1.3257428944152834, 'left_w2':     -1.7533400385498048, 'left_e0': 0.03566505327758789, 'left_e1': 0.6948932961    181641, 'left_s0': -1.1665923878540039, 'left_s1': -0.6726505747192383}     
{'left_w0': -2.6967382220214846, 'left_w1': -0.8440729275695802, 'left_w2':     -1.7541070289428713, 'left_e0': 0.036048548474121096, 'left_e1': 0.166820410    49194338, 'left_s0': -0.7731263162109375, 'left_s1': -0.7056311616210938}

我从文本文件中逐行读取数据,并将其传输到一个名为data的dict变量。以下是读取文件代码:

def read_data_from_file(file_name):
    data = dict()
    f = open(file_name, 'r')
    for index_line in range(1, number_lines +1):
      data[index_line] = eval(f.readline())
    f.close()
    return data

然后我改变了一些数据。类似于data[index\u line]['left\u w0']=data[index\u line]['left\u w0']+0.0006。之后,我将数据写入另一个文本文件。代码如下:

def write_data_to_file(data, file_name)
    f = open(file_name, 'wb')
    data_convert = dict()
    for index_line in range(1, number_lines):
       data_convert[index_line] = repr(data[index_line])
       data_convert[index_line] = data_convert[index_line].replace('"','') #  I also used strip
       json.dump(data_convert[index_line], f)
       f.write('\n')
    f.close()

我在新文件中收到的结果是:

"{'left_w0': -2.6978887076110842, 'left_w1': -1.3257428944152834, 'left_w2':     -1.7533400385498048, 'left_e0': 0.03566505327758789, 'left_e1': 0.6948932961    181641, 'left_s0': -1.1665923878540039, 'left_s1': -0.6726505747192383}"    
"{'left_w0': -2.6967382220214846, 'left_w1': -0.8440729275695802, 'left_w2':     -1.7541070289428713, 'left_e0': 0.036048548474121096, 'left_e1': 0.166820410    49194338, 'left_s0': -0.7731263162109375, 'left_s1': -0.7056311616210938}"

我无法删除“”。你知道吗


Tags: 文件nameconvertdataindexlineleftw1
1条回答
网友
1楼 · 发布于 2024-04-20 09:01:58

您可以通过删除不必要的转换来简化代码:

import json

def write_data_to_file(data, filename):
    with open(filename, 'w') as file:
        json.dump(data, file)

def read_data_from_file(filename):
    with open(filename) as file:
        return json.load(file)

相关问题 更多 >