python-3.x - Python 3 不会将附加数据读取到文件中
问题描述
我正在尝试将二进制数据写入文件。程序将首先检查文件是否存在。如果文件不存在,程序将创建文件并将数据写入其中。如果确实存在,则数据将附加到文件中。然而,当我尝试读取文件时,我无法读取附加数据,只能读取首次创建文件时写入的数据。
def getText(self):
self.readKey()
st = self.inBox.get('1.0', 'end')
fen = Fernet(self.readKey())
encrypted = fen.encrypt(st.encode())
return encrypted
def writeFile(self):
if (os.path.exists('data.txt') == False):
file = open('data.txt',mode='wb' )
file.write(self.getText())
file.close()
else:
file = open('data.txt',mode='ab' )
#sts = file.read()
file.write(self.getText())
file.close()
self.inBox.delete('1.0','end')
def openFile(self):
self.outBox.delete('1.0','end')
fen = Fernet(self.readKey())
try:
f = open("data.txt", mode='rb')
except:
alert_popup(self,'Error','No File Exists')
self.outBox.insert(tk.END, fen.decrypt(f.read()))
解决方案
使用模式“a”。
if (os.path.exists('data.txt') == False):
file = open('data.txt',mode='a' )
file.write(self.getText())
file.close()
推荐阅读
- batch-file - .bat 转换为 .exe 未运行
- php - 每秒 - 磁盘已满 - compute.projects.setCommonInstanceMetadata
- javascript - 在 ajax 调用运行之前为变量赋值
- regex - HTAccess 将特定的 URL 重定向到新的域页面,然后休息到 Root
- time-complexity - O(nm/8 * log(nm/8)) + O(nm/9 * log(nm/9)) + ... + O(nm/m * log(nm/m)) 等于多少?
- linq - 当 Guid 不起作用时,如何在 LINQ to SQL 中获取随机记录
- visual-studio-code - 安装完成后visual studio出现黑屏
- android - 如何检查android webview中的所有元素
- r - 我如何在文件夹中列出所有带有 .nc (netcdf) 的文件并从 10 个变量中提取 1 个变量?
- python - Python:无法从字符串转换为浮点数