作为初学者创建一个简单的python文本编辑器,我遇到了一个令人困惑的错误,当我第一次打开它时,能够用read_file()函数打印文本文件,但在使用write_file()修改文本文件后,再次读取文件会返回空白。简单文本编辑器(Python)中的错误
此外,任何批评我的代码将不胜感激。谢谢。
import os
def main():
file = open_file()
quit = False
while quit == False:
print('Current file open is {}'.format(file.name))
print('(\'read\', \'write\', \'rename\', \'change file\', \'quit\',)')
action = raw_input('> ')
if str(action) == 'read':
read_file(file)
elif str(action) == 'write':
file = write_file(file)
elif str(action) == 'rename':
file = rename(file)
elif str(action) == 'change file':
file.close()
open_file()
elif str(action) == 'quit':
break
else:
print('Incorrect action.')
def open_file():
print('Create/open a file')
filename = raw_input('Filename: ')
try:
file = open(str(filename), 'r+')
return file
except:
print('An error occured')
return open_file()
def read_file(file):
try:
print('{}, {}'.format(file.name, file))
print(file.read())
except:
print('An error occured')
return None
def write_file(file):
print('Type to start writing to your file.')
#read_file(file)
add_text = raw_input('> ')
file.write(str(add_text))
return file
def rename(file):
new_name = raw_input('New file name: ')
os.rename(file.name, str(new_name))
return file
main()
我会说使用'file'作为变量名称是好的。它很少使用,它只影响它的使用范围。 –