Как записать кортеж с плавающей точкой в ​​файловое пространство, разделенное только одним вызовом для записи в python? - PullRequest
2 голосов
/ 23 августа 2011

Предположим, у меня есть список с плавающей точкой, и я хочу записать его в файл.Я использую Python.Я хочу, чтобы все элементы были разделены пробелами, и я не хочу использовать более одного вызова для написания функции.Следующий код иллюстрирует его написание, но он разделен запятыми ...

    arr [-12.0, 1.7, -5.5, 4.0]
    f = open("data.dat","w")
    f.write(str(arr))
    f.close()

Список записывается в файл следующим образом (вместе с запятыми и квадратными скобками)

   [-12.0, 1.7, -5.5, 4.0]

Я хочунаписать следующее за один звонок, чтобы написать

   -12.0 1.7 -5.5 4.0

Большое спасибо.

Ответы [ 2 ]

6 голосов
/ 23 августа 2011

Поскольку элементы arr не являются строками, вам необходимо преобразовать их в строки перед присоединением :

with open("data.dat","w") as f:
    f.write(' '.join(map(str,arr)))

PS.Поскольку этот вопрос помечен как numpy, обратите внимание, что вы также можете использовать np.savetxt:

np.savetxt('data.dat',(arr,),delimiter=' ',fmt='%g')
2 голосов
/ 23 августа 2011
li = [-12.0, 1.7, -5.5, 4.0]     

with open("data.dat","w") as f:
    f.write(" ".join(map(str,li)))

li вместо arr , поскольку массивы это в Python

Вы должны рассмотреть возможность использования:

f.write("\t".join(map(str,li)))

, в котором вместо табуляции отображается вкладка

Кстати, если вы хотите добавить данные в конец файла, замените режим 'r' на 'a', в противном случае вы удалите всепредыдущие данные в файле, если он существовал одноименно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...