загружаю
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
"""nsv_io.py — чтение/запись .nsv диалоговых файлов через пакет nsv."""
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
import nsv
|
||||
|
||||
FIELDS = ("line", "speaker", "pcm", "text", "translated_text")
|
||||
|
||||
|
||||
def load_nsv_file(path: Path) -> list[dict]:
|
||||
with open(path, "r", encoding="utf-8", newline="") as f:
|
||||
it = iter(nsv.load(f))
|
||||
next(it, None)
|
||||
entries = []
|
||||
for line, speaker, pcm, text, translated_text in it:
|
||||
entries.append({
|
||||
"line": int(line or 0),
|
||||
"speaker": speaker or None,
|
||||
"pcm": pcm or None,
|
||||
"text": text,
|
||||
"translated_text": translated_text,
|
||||
})
|
||||
return entries
|
||||
|
||||
|
||||
def save_nsv_file(path: Path, entries: list[dict]) -> None:
|
||||
rows = [list(FIELDS)]
|
||||
for e in entries:
|
||||
rows.append([
|
||||
str(e.get("line", "")),
|
||||
e.get("speaker") or "",
|
||||
e.get("pcm") or "",
|
||||
e.get("text", ""),
|
||||
e.get("translated_text", ""),
|
||||
])
|
||||
with open(path, "w", encoding="utf-8", newline="") as f:
|
||||
nsv.dump(rows, f)
|
||||
Reference in New Issue
Block a user