即使使用最基本的代码,我的.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()
答案 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会自动创建。