summaryrefslogtreecommitdiffstats
path: root/attain_vocab_to_anki_py/io.py
diff options
context:
space:
mode:
Diffstat (limited to 'attain_vocab_to_anki_py/io.py')
-rw-r--r--attain_vocab_to_anki_py/io.py26
1 files changed, 19 insertions, 7 deletions
diff --git a/attain_vocab_to_anki_py/io.py b/attain_vocab_to_anki_py/io.py
index 4288e06..90c9507 100644
--- a/attain_vocab_to_anki_py/io.py
+++ b/attain_vocab_to_anki_py/io.py
@@ -8,24 +8,36 @@ class Entry:
english: str
meanings: str
-def read_from_file(path_str: str) -> list:
+def read_from_file(path_str: str, row_format: str) -> list:
p = path.join(path_str)
lines = []
+ format_segments = row_format.split(",")
+
with open(p, "r") as f:
lines = f.readlines()
entries = []
for line in lines:
- kanji, hiragana, english = line.split(",", 2)
- entries.append(Entry(kanji=kanji.strip(),
- hiragana=hiragana.strip(),
- english=english.strip(),
- meanings=""))
+ if len(line.strip()) == 0:
+ continue
+
+ value_dict = {}
+
+ row_values = line.split(",", len(format_segments) - 1)
+ for i, format_segment in enumerate(format_segments):
+ value_dict[format_segment] = row_values[i]
+
+ entries.append(Entry(
+ kanji=value_dict.get("kanji", "").strip(),
+ hiragana=value_dict.get("hiragana", "").strip(),
+ english=value_dict.get("english", "").strip(),
+ meanings=value_dict.get("meanings", "").strip()
+ ))
return entries
-def _entry_to_row(entry: Entry, delimiter: str = ";") -> str:
+def _entry_to_row(entry: Entry, delimiter: str = "ยง") -> str:
s = delimiter.join([entry.kanji, entry.hiragana, entry.english, entry.meanings])
return f"{s}\n"