写入文件不起作用

时间:2016-04-05 13:44:31

标签: python

即使使用最基本的代码,我的.txt文件也是空的,我无法理解为什么。我在python 3中运行此子例程以从用户收集信息。当我在记事本和N ++中打开.txt文件时,我得到一个空文件。

这是我的代码:

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()

3 个答案:

答案 0 :(得分:1)

尝试用fw.close()

替换fw.close

答案 1 :(得分:1)

它正在使用python 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()

答案 2 :(得分:0)

不知道Start()做了什么,到目前为止,答案中必须忽略它......

我自己也不愿意关闭文件,但让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()

请参阅:

nico@ometeotl:~/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
nico@ometeotl:~/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
nico@ometeotl:~/temp$ cat AutoLoader.txt 
First user's entry
Another user's entry
nico@ometeotl:~/temp$

另请注意,启动时可能缺少的AutoLoader.txt会自动创建。