2016-04-05 2 views
-1

Даже с самым простым кодом мой .txt-файл выходит пустым, и я не могу понять, почему. Я выполняю эту подпрограмму в python 3 для сбора информации от пользователя. Когда я открываю файл .txt как в блокноте, так и в N ++, я получаю пустой файл.Запись в файл не будет работать

Вот мой код:

def Setup(): 
    fw = open('AutoLoader.txt', 'a') 

    x = True 

    while x == True: 
     print("Enter new location to enter") 
     new_entry = str(input('Start with \'web\' if it\'s a web page\n')) 
     fw.write(new_entry) 

     y = input('New Data? Y/N\n') 

     if y == 'N' or y == 'n': 
      fw.close 
      break 

    fw.close 
    Start() 
+4

Не ваша проблема, но 'fw.close' не закрывает ваш файл! 'fw.close()' делает. – deceze

+1

Что делает 'Start()' do? –

+2

Проблема _could_ будет 'close', в зависимости от того, как это выполняется. Поскольку файл закрыт неправильно, данные могут быть в буфере, когда Ash открывает файл в редакторе. –

ответ

1

Он работает на питона 3,4

def Setup(): 
fw = open('AutoLoader3.4.txt', 'a+') 
x = True 
while x == True: 
    print("Enter new location to enter") 
    new_entry = str(input('Start with \'web\' if it\'s a web page\n')) 
    fw.write(new_entry) 

    y = input('New Data? Y/N\n') 

    if y == 'N' or y == 'n': 
     fw.close() 
     break 
fw.close() 
Setup() 
0

Не зная, что Start() делает, он должен быть проигнорированным в ответах, до сих пор ...

Я бы не стал закрывать f ile, но пусть оператор with выполняет эту работу должным образом.

После скрипт работает, по крайней мере:

#!/usr/bin/env python3 

def Setup(): 
    with open('AutoLoader.txt', 'a') as fw: 
     while True: 
      print("Enter new location to enter") 
      new_entry = str(input("Start with 'web' if it's a web page\n")) 
      fw.write(new_entry + "\n") 
      y = input('New Data? Y/N\n') 
      if y in ['N', 'n']: 
       break 

     #Start() 


Setup() 

См:

[email protected]:~/temp$ ./test_script3.py                             
Enter new location to enter 
Start with 'web' if it's a web page 
First user's entry 
New Data? Y/N 
N 
[email protected]:~/temp$ ./test_script3.py 
Enter new location to enter 
Start with 'web' if it's a web page 
Another user's entry 
New Data? Y/N 
N 
[email protected]:~/temp$ cat AutoLoader.txt 
First user's entry 
Another user's entry 
[email protected]:~/temp$ 

отметить также, что, возможно, не хватает AutoLoader.txt при запуске будет создан автоматически.

Смежные вопросы