2016-02-18 2 views
0

У меня есть следующий код:Python raw_input для записи файлов

print "We're going to write to a file you'll be prompted for" 
targetfile = raw_input('Enter a filename: ') 
targetfilefound = open('targetfile' , 'w') 
print "What do we write in this file?" 
targetfilefound.write("hello this is working!") 
targetfilefound.close() 

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

+2

' 'targetfile'' не то же самое, как' targetfile' –

+0

Удалите цитаты из переменной 'targetfile' как это 'targetfilefound = open (targetfile, 'w')' – Forge

+0

Спасибо вам, это устранило проблему. – nick064

ответ

0

Судя по вещи сценарий печати вы, вероятно, хотите, чтобы пользователь ввел то, что должно быть напечатано в файле так:

print "We're going to write to a file you'll be prompted for" 
targetfile = raw_input('Enter a filename: ') 
targetfilefound = open(targetfile , 'w') 
print "What do we write in this file?" 
targetfilefound.write(raw_input()) 
targetfilefound.close() 

Примечание: Этот метод будет создан новый файл, если этого не существует. Если вы хотите, чтобы проверить, существует ли файл, который вы можете использовать модуль операционной системы, что-то вроде этого:

import os 

print "We're going to write to a file you'll be prompted for" 
targetfile = raw_input('Enter a filename: ') 
if os.path.isfile(targetfile) == True: 
    targetfilefound = open(targetfile , 'w') 
    print "What do we write in this file?" 
    targetfilefound.write(raw_input()) 
    targetfilefound.close() 
else: 
    print "File does not exist, do you want to create it? (Y/n)" 
    action = raw_input('> ') 
    if action == 'Y' or action == 'y': 
     targetfilefound = open(targetfile , 'w') 
     print "What do we write in this file?" 
     targetfilefound.write(raw_input()) 
     targetfilefound.close() 
    else: 
     print "No action taken" 
0

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

Но на самом деле, вместо того, чтобы писать, как код, который вы можете использовать с открытым, как указано ниже

with open('somefile.txt', 'a') as the_file: 
    the_file.write('hello this is working!\n') 

В приведенном выше случае, вам не нужно делать каких-либо обработки исключений при обработке файла. Когда происходит ошибка, объект-курсор автоматически закрывается, и нам не нужно явно закрывать его. Даже при написании файла, чтобы добиться успеха, он автоматически закроет ссылку на указатель файла.

Explanation of efficient use of with from Pershing Programming blog

+0

очень интересно, спасибо! – nick064

+0

nick064, если вам нравится, ответьте, пожалуйста, проголосуйте за него –

+0

no rep, вернется, когда смогу :) – nick064