作爲初學者創建一個簡單的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'作爲變量名稱是好的。它很少使用,它隻影響它的使用範圍。 –