DiskReaderWriter.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import os
  2. from magic_pdf.io.AbsReaderWriter import AbsReaderWriter
  3. class DiskReaderWriter(AbsReaderWriter):
  4. def __init__(self, parent_path, encoding='utf-8'):
  5. self.path = parent_path
  6. self.encoding = encoding
  7. def read(self, mode="text"):
  8. if not os.path.exists(self.path):
  9. print(f"文件 {self.path} 不存在")
  10. return None
  11. if mode == "text":
  12. with open(self.path, 'r', encoding = self.encoding) as f:
  13. return f.read()
  14. elif mode == "binary":
  15. with open(self.path, 'rb') as f:
  16. return f.read()
  17. else:
  18. raise ValueError("Invalid mode. Use 'text' or 'binary'.")
  19. def write(self, data, mode="text"):
  20. if mode == "text":
  21. with open(self.path, 'w', encoding=self.encoding) as f:
  22. f.write(data)
  23. print(f"内容已成功写入 {self.path}")
  24. elif mode == "binary":
  25. with open(self.path, 'wb') as f:
  26. f.write(data)
  27. print(f"内容已成功写入 {self.path}")
  28. else:
  29. raise ValueError("Invalid mode. Use 'text' or 'binary'.")
  30. # 使用示例
  31. if __name__ == "__main__":
  32. file_path = "example.txt"
  33. drw = DiskReaderWriter(file_path)
  34. # 写入内容到文件
  35. drw.write(b"Hello, World!", mode="binary")
  36. # 从文件读取内容
  37. content = drw.read()
  38. if content:
  39. print(f"从 {file_path} 读取的内容: {content}")