2016-12-20 6 views
2

Я определил некоторую константу в моем коде python. Этими константами являются:Читать из файла python

pairs = (
(0.0, 0.25, 0.2, 0.30), 
(0.25, 0.5, 0.35, 0.45), 
(0.5, 0.75, 0.5, 0.6), 
(0.75, 1.0, 0.65, 0.75) 
) 

Я хочу поместить эти константы в текстовый файл и прочитать их из моего кода. Как это можно сделать? Как я могу читать точно так же, как эти константы?

EDIT: Я пытался читать переменные, используя следующий код:

with open ("test.txt", "r") as myfile: 
    data=myfile.readlines() 

Однако это не дает желаемых результатов.

+4

Похоже, вы хотите, чтобы мы написали вам код. Хотя многие пользователи готовы создавать код для кодера, терпящего бедствие, они обычно помогают только тогда, когда плакат уже попытался решить проблему самостоятельно. Хорошим способом продемонстрировать это усилие является включение кода, который вы написали до сих пор, пример ввода (если есть), ожидаемый вывод и вывод, который вы фактически получаете (вывод, трассировка и т. Д.). Чем больше деталей вы предоставляете, тем больше ответов вы получите. Проверьте [FAQ] (http://stackoverflow.com/tour) и [Как спросить] (http://stackoverflow.com/questions/how-to-ask). – TigerhawkT3

+0

И «импортировать» его. – TigerhawkT3

+0

Существует несколько способов, но если вы не знаете, как это выглядит, вы должны прочитать [json] (https://docs.python.org/2/library/json.html). Существует много учебников по этому вопросу, если официальная документация вам нечеткая. –

ответ

1
import csv 
with open(path, 'rb') as f: 
    reader = csv.reader(f) 
    list_out = list(reader) 
    print list_out 

Создает вывод в формате список

[['0.0', ' 0.25', ' 0.2', ' 0.30'], ['0.25', ' 0.5', ' 0.35', ' 0.45'], ['0.5', ' 0.75', ' 0.5', ' 0.6'], ['0.75', ' 1.0', ' 0.65', ' 0.75']] 

входной файл создается и сохраняется следующим

0.0, 0.25, 0.2, 0.30 
0.25, 0.5, 0.35, 0.45 
0.5, 0.75, 0.5, 0.6 
0.75, 1.0, 0.65, 0.75 
+0

Вы можете воспользоваться ['QUOTE_NONNUMERIC'] (https://docs.python.org/3/library/csv.html#csv.QUOTE_NONNUMERIC), чтобы эти числа были автоматически преобразованы в поплавки –

0

Дать их легко

def writeinformationtofile(info, thefilename): # writes information to file 
    with open(thefilename, "w") as filea: 
    filea.write(info) 

Интерпретируя их является так же легко. Сначала прочтите файл

with open(thefilename, "r") as filea: 
    openedinfo = openedfile.read() 

Это будет строка. Затем включите его в кортеж, используя следующее в качестве источника информации

Using python's eval() vs. ast.literal_eval()?

import ast 
ast.literal_eval(openedinfo) 
+1

''% s "% (thefilename)' эквивалентно 'thefilename'. Кроме того, вы, вероятно, хотели использовать 'filea.write (repr (info))'. BTW, подумайте об использовании контекстных менеджеров (т. Е. 'With' blocks) при работе с файлами, чтобы убедиться, что они правильно закрыты в случае возникновения ошибки. –

+0

Спасибо за комментарий. Я полагал, что редактировал, как вы предложили. Дайте мне знать, если я смогу улучшить его дальше. Спасибо! –