MCPcopy Index your code
hub / github.com/KnowledgeXLab/LeanRAG / write

Function write

tools/io_file.py:58–94  ·  view source on GitHub ↗

根据文件扩展名写入数据到文件,并自动判断是否使用多线程。 TODO: 修正多线程保存功能,暂不可用,所以阈值设置的很大 参数: - file_path (str): 文件路径。 - data (any): 要写入的数据。 - mode (str): 写入模式,默认为 'a'(追加模式),也可以选择 'w'(覆盖模式)。 - chunk_size (int): 当数据量较大时,使用多线程写入,单位为字节,默认为 10MB。 - encoding (str): 写入文件的编码格式,默认为 'utf-8'。

(file_path, data, mode='a', chunk_size=1024*1024*100000, encoding='utf-8')

Source from the content-addressed store, hash-verified

56
57
58def write(file_path, data, mode='a', chunk_size=1024*1024*100000, encoding='utf-8'):
59 """
60 根据文件扩展名写入数据到文件,并自动判断是否使用多线程。
61 TODO: 修正多线程保存功能,暂不可用,所以阈值设置的很大
62
63 参数:
64 - file_path (str): 文件路径。
65 - data (any): 要写入的数据。
66 - mode (str): 写入模式,默认为 'a'(追加模式),也可以选择 'w'(覆盖模式)。
67 - chunk_size (int): 当数据量较大时,使用多线程写入,单位为字节,默认为 10MB。
68 - encoding (str): 写入文件的编码格式,默认为 'utf-8'
69 """
70
71 create_if_not_exist(file_path)
72
73 file_ext = os.path.splitext(file_path)[1].lower()
74
75 try:
76 if file_ext == '.txt':
77 write_txt(file_path, data, mode, chunk_size, encoding)
78 elif file_ext == '.csv':
79 write_csv(file_path, data, mode, chunk_size, encoding)
80 elif file_ext == '.json':
81 write_json(file_path, data, mode, encoding)
82 elif file_ext == '.yaml' or file_ext == '.yml':
83 write_yaml(file_path, data, mode, encoding)
84 elif file_ext == '.xlsx':
85 write_xlsx(file_path, data, encoding)
86 elif file_ext == '.md':
87 write_markdown(file_path, data, mode, encoding)
88 elif file_ext == '.jsonl':
89 write_jsonl(file_path, data, mode, chunk_size, encoding)
90 else:
91 raise ValueError(f"不支持的文件格式: {file_ext}")
92 except Exception as e:
93 logger.error(f"写入文件 {file_path} 时出错: {e}")
94 raise
95
96
97

Callers

nothing calls this directly

Calls 8

write_csvFunction · 0.85
write_yamlFunction · 0.85
write_xlsxFunction · 0.85
write_markdownFunction · 0.85
create_if_not_existFunction · 0.70
write_txtFunction · 0.70
write_jsonFunction · 0.70
write_jsonlFunction · 0.70

Tested by

no test coverage detected