Jak utworzyć obiekt podobny do pliku (ten sam typ kaczki co Plik) z zawartością łańcucha?Jak zawinąć ciąg znaków w pliku w Pythonie?
Odpowiedz
Dla Pythona 2.x użyj modułu StringIO. Na przykład:
>>> from cStringIO import StringIO
>>> f = StringIO('foo')
>>> f.read()
'foo'
używam cStringIO (co jest szybciej), ale należy pamiętać, że nie robi accept Unicode strings that cannot be encoded as plain ASCII strings. (Możesz przejść do StringIO, zmieniając "z cStringIO" na "ze StringIO".)
Dla Pythona 3.x użyj modułu io
.
f = io.StringIO('foo')
W Pythonie 3.0:
import io
with io.StringIO() as f:
f.write('abcdef')
print('gh', file=f)
f.seek(0)
print(f.read())
@ABB zaakceptowana odpowiedź pokazuje już takie użycie. Moja odpowiedź jest komplementarna: demonstruje "z" -powiadomieniem i pisze, drukuje, poszukuje, czyta metody. – jfs
Dwa dobre odpowiedzi. Chciałbym dodać małą sztuczkę - jeśli trzeba obiektu rzeczywistego pliku (niektóre metody oczekiwać, a nie tylko jeden interfejs), tutaj jest sposób, aby utworzyć adaptera:
"Nie znaleziono strony" - http://www.rfk.id.au/software/projects/filelike/api/filelike.htm – jfs
Co za wstyd. Nie można znaleźć oryginału ... –
Wydaje się być z powrotem teraz (7 lat później;) –
ten działa dla Python2.7 i Python3.x:
io.StringIO(u'foo')
- 1. hex ciąg znaków w Pythonie
- 2. Jak zadeklarować długi ciąg znaków w Pythonie?
- 3. Jak podzielić ciąg znaków w Pythonie?
- 4. Jak wydrukować ciąg znaków dosłownie w Pythonie
- 5. Jak rozwinąć ciąg znaków w ciągu znaków w pythonie?
- 6. Zamień ciąg znaków w pliku
- 7. odwrócić ciąg w Pythonie
- 8. Jak przekonwertować ciąg znaków na utf-8 w Pythonie
- 9. Jak przekonwertować ciąg znaków na bufor w Pythonie 3.1?
- 10. Jak wstawić n znaków w Pythonie
- 11. znajdź i zamień ciąg znaków w pliku
- 12. Zamień ciąg znaków w pliku na nodejs
- 13. parsowania ciąg w Pythonie (przekonwertować ciąg data)
- 14. Jak przekonwertować ciąg znaków szesnastkowy na ciąg bajtów w Perlu?
- 15. Konwertuj listę na ciąg znaków ze spacjami w pythonie
- 16. Jak znaleźć jedną liczbę w ciągu znaków w Pythonie?
- 17. Jak zamienić ciąg znaków w pliku przy użyciu NANT?
- 18. Jak zapisać ciąg znaków w pliku cookie i pobrać go?
- 19. Łączenie ciągów znaków w pythonie w wielolinie
- 20. Jak zawinąć ConcurrentDictionary w BlockingCollection?
- 21. Jak zawinąć ItemsPanel w LongListSelector?
- 22. W języku Java: zastąp ciąg znaków w pliku MS Word
- 23. Konwertowanie ciągów znaków na listy w pythonie
- 24. Przekształć ciąg URL w zwykły ciąg znaków w pythonie (% 20 na spację itp.)
- 25. u „\ ufeff” w Pythonie ciąg
- 26. Jak odkodować nieprawidłowy ciąg jsonów w pythonie
- 27. Podział ciąg z zsh jak w Pythonie
- 28. Jak przekonwertować ciąg na int w Pythonie?
- 29. dekodowania JSON ciąg w Pythonie
- 30. Jak mogę zacytować uciec znaków w csv pisarza w Pythonie
Istnieje powód, aby teraz używać cStringIO: cStringIO nie obsługuje łańcuchów unicode. –
Myślę, że lepszym pomysłem jest zrobienie "importu cStringIO jako StringIO". W ten sposób, jeśli z jakiejkolwiek przyczyny musisz przełączyć się na czystą implementację pythona, musisz zmienić tylko jedną linię. –
Działa to również dla Python2.7: 'io.StringIO (u'foo ')' Używałbym tego – guettli