Update ToolFile

This commit is contained in:
2025-10-13 17:01:21 +08:00
parent 5b38b6239e
commit 97c57f65df

View File

@@ -251,65 +251,65 @@ class ToolFile(BaseModel):
def LoadAsModel(self, model:type["BaseModel"]) -> "BaseModel": def LoadAsModel(self, model:type["BaseModel"]) -> "BaseModel":
return model.model_validate(self.LoadAsJson()) return model.model_validate(self.LoadAsJson())
def ReadLines(self): def ReadLines(self, **kwargs):
with open(self.OriginFullPath, 'r') as f: with open(self.OriginFullPath, 'r', **kwargs) as f:
while True: while True:
line = f.readline() line = f.readline()
if not line or line == '': if not line or line == '':
break break
yield line yield line
async def ReadLinesAsync(self): async def ReadLinesAsync(self, **kwargs):
import aiofiles import aiofiles
async with aiofiles.open(self.OriginFullPath, 'r') as f: async with aiofiles.open(self.OriginFullPath, 'r', **kwargs) as f:
while True: while True:
line = await f.readline() line = await f.readline()
if not line or line == '': if not line or line == '':
break break
yield line yield line
def ReadBytes(self): def ReadBytes(self, **kwargs):
with open(self.OriginFullPath, 'rb') as f: with open(self.OriginFullPath, 'rb', **kwargs) as f:
while True: while True:
data = f.read(1024) data = f.read(1024)
if not data or data == '': if not data or data == '':
break break
yield data yield data
async def ReadBytesAsync(self): async def ReadBytesAsync(self, **kwargs):
import aiofiles import aiofiles
async with aiofiles.open(self.OriginFullPath, 'rb') as f: async with aiofiles.open(self.OriginFullPath, 'rb', **kwargs) as f:
while True: while True:
data = await f.read(1024) data = await f.read(1024)
if not data or data == '': if not data or data == '':
break break
yield data yield data
def WriteBytes(self, data:bytes): def WriteBytes(self, data:bytes, **kwargs):
with open(self.OriginFullPath, 'wb') as f: with open(self.OriginFullPath, 'wb', **kwargs) as f:
f.write(data) f.write(data)
async def WriteBytesAsync(self, data:bytes): async def WriteBytesAsync(self, data:bytes, **kwargs):
import aiofiles import aiofiles
async with aiofiles.open(self.OriginFullPath, 'wb') as f: async with aiofiles.open(self.OriginFullPath, 'wb', **kwargs) as f:
await f.write(data) await f.write(data)
def WriteLines(self, data:List[str]): def WriteLines(self, data:List[str], **kwargs):
with open(self.OriginFullPath, 'w') as f: with open(self.OriginFullPath, 'w', **kwargs) as f:
f.writelines(data) f.writelines(data)
async def WriteLinesAsync(self, data:List[str]): async def WriteLinesAsync(self, data:List[str], **kwargs):
import aiofiles import aiofiles
async with aiofiles.open(self.OriginFullPath, 'w') as f: async with aiofiles.open(self.OriginFullPath, 'w', **kwargs) as f:
await f.writelines(data) await f.writelines(data)
def AppendText(self, data:str): def AppendText(self, data:str, **kwargs):
with open(self.OriginFullPath, 'a') as f: with open(self.OriginFullPath, 'a', **kwargs) as f:
f.write(data) f.write(data)
async def AppendTextAsync(self, data:str): async def AppendTextAsync(self, data:str, **kwargs):
import aiofiles import aiofiles
async with aiofiles.open(self.OriginFullPath, 'a') as f: async with aiofiles.open(self.OriginFullPath, 'a', **kwargs) as f:
await f.write(data) await f.write(data)
def AppendBytes(self, data:bytes): def AppendBytes(self, data:bytes, **kwargs):
with open(self.OriginFullPath, 'ab') as f: with open(self.OriginFullPath, 'ab', **kwargs) as f:
f.write(data) f.write(data)
async def AppendBytesAsync(self, data:bytes): async def AppendBytesAsync(self, data:bytes, **kwargs):
import aiofiles import aiofiles
async with aiofiles.open(self.OriginFullPath, 'ab') as f: async with aiofiles.open(self.OriginFullPath, 'ab', **kwargs) as f:
await f.write(data) await f.write(data)
def SaveAsJson(self, json_data): def SaveAsJson(self, json_data):