Mam aplikacji Pythona, która wyprowadza plik SQL:„Backspace” w ciągu ostatniego znaku zapisane do pliku
sql_string = "('" + name + "', " + age + "'),"
output_files['sql'].write(os.linesep + sql_string)
output_files['sql'].flush()
nie zostanie to zrobione w for
pętli, jest napisane jak dane będą dostępne. Czy istnieje sposób "backspace" na ostatni znak przecinka po uruchomieniu aplikacji i zastąpienie go średnikiem? Jestem pewien, że mógłbym wymyślić jakiś obejście, wypisując przecinek przed znakiem nowej linii i używając globalnego Bool, aby określić, czy jakikolwiek konkretny "zapis" jest pierwszym napisem. Jednak myślę, że aplikacja byłaby o wiele czystsza, gdybym mógł po prostu "cofnąć się" nad nią. Oczywiście bycie Pythonem może być łatwiejsze!
Należy pamiętać, że posiadanie każdej linii wartości insert
na liście, a następnie implikowanie listy nie jest wykonalnym rozwiązaniem w tym przypadku użycia.
Tak naprawdę nie chcesz tam iść; wolisz, aby twój plik wyjściowy był bardzo ogólny, aby mógł być potokiem, nazwany potokiem, obiektem reprezentującym połączenie TCP lub polem poczty HTTP itp. Niektóre z nich mają skutki uboczne i nie można cofnąć ostatniej postaci . –
@qarma: Dziękuję. W konkretnym przypadku, w którym mój "plik wyjściowy" nie jest generyczny, ale raczej plik tekstowy, jak opisałem, czy są jakieś "skutki uboczne", które powinienem być ostrożni? Zauważ, że będzie działać na systemie pochodnym od Debiana. Ponadto nie jestem pewien, dlaczego wolałbym zachować bardzo ogólny format pliku wynikowego, być może mógłbyś to wyjaśnić? – dotancohen