Как написать список в файл без скобок - PullRequest
0 голосов
/ 17 июня 2019

У меня есть целочисленный список с именем LineValue в форме [0, 1, 1, 2, 0, 0], и мне нужно записать его в файл. Чтобы предотвратить ошибку чтения с моим кодом, форма в файле должна быть

0,1,1,2,0,0

Вместо этого я получаю

[0, 1, 1, 2, 0, 0]

Это вызывает ошибку приведения, когда я пытаюсь прочитать файл. Я мог бы изменить либо функцию чтения, либо функцию записи, поскольку обе они определены в одном импортированном модуле, но я думаю, что я бы предпочел изменить функцию записи, при прочих равных условиях.

написать код:

def Write_Line(LineValue):
        with open("/usr/lib/cgi-bin/ClassValues/position","w") as f:  # Set index values for setup parameters
                f.write(str(LineValue))

прочитайте код:

def Read_Line():
        with open("/usr/lib/cgi-bin/ClassValues/position","r") as f:  # Get index values for setup parameters
                LV = f.read()
        RetValue = [int(x) for x in LV.split(",")]
        return RetValue

ошибка:

Traceback (most recent call last):
  File "/usr/lib/cgi-bin/index.py", line 16, in <module>
    LineValue = read_Line()
  File "/usr/lib/cgi-bin/resource.py", line 14, in Read_Line
    RetValue = [int(x) for x in LV.split(",")]
  File "/usr/lib/cgi-bin/resource.py", line 14, in <listcomp>
    RetValue = [int(x) for x in LV.split(",")]
ValueError: invalid literal for int() with base 10: '[0'

1 Ответ

2 голосов
/ 17 июня 2019

Вы можете отформатировать его так:

>>> val = [0, 1, 1, 2, 0, 0]
>>> print(",".join(str(i) for i in val))
0,1,1,2,0,0
>>> 

И, конечно, вы можете позвонить f.write вместо print.

...