用于空格字符的Python编码

时间:2016-02-09 21:04:30

标签: python encoding

我正在编写一个函数,用字符§更改字符串中的所有空格,然后用空格分割字符串中的所有字符。 我编写了如下函数:

def createList(text):
sentence = ""
for char in text:
    if char == " ":
        sentence = sentence + "§ "
    else:
        sentence = sentence + char
myFile = open("ahoi.txt", "w")
myFile.write(sentence)
myFile.close()
return sentence

这里的问题是我的输入不是unicode所以我不改变我的输入编码并执行该过程。然后当我尝试添加如下空格时:

def createList(text):
sentence = ""
for char in text:
    if char == " ":
        sentence = sentence + "§ "
    else:
        sentence = sentence + char + " "
myFile = open("ahoi.txt", "w")
myFile.write(sentence)
myFile.close()
return sentence

所有角色都被打破了。我的输入包括一些字符,如ş,ı,ü,ö。所以我绝不能失去它们。我应该做什么样的编码和解码?我尝试了很多解决方案,但没有一个解决方案。

以下是输入示例:

a =“”“Bunlarısöylediktensonra,şilteninaltındanbirmektupçıkardı。 Ancak,bukırlangıçlarçokküçüktürlerveokadarkızlıuçarlarki,şelaleyibirok gibi keserekarkaarafınageçebilirler。 Şuracıkta,seninyanındayatıveririmben。“ Yardımetmekisterdim,ama burnumu sokmasam daha iyi olur。 İşininilkünündebiröğrencininaııyaralanmasının,sonra da kendidispanserindeölmesininbeklenilmezliğiuykudagezmesisonucunudoğurmuşolmalıydı。 Önündejderhalardandaha beterbirşeyolamazdı,değilmi? Sorusunun birnedeniolmalı,diyedüşünüyordu。“”“

1 个答案:

答案 0 :(得分:0)

我不确定这是不是你想要的。

# -*- coding: utf-8 -*- 

def createList(text):
    sentence = ""
    for char in text:
        if char == " ":
            sentence = sentence + u"§ "
        else:
            sentence = sentence + char + " "
    myFile = open("ahoi.txt", "w")
    myFile.write(sentence.encode("utf-8"))
    myFile.close()
    return sentence


a = u"""Bunları söyledikten sonra, şiltenin altından bir mektup çıkardı. Ancak, bu kırlangıçlar çok küçüktürler ve o kadar hızlı uçarlar ki, şelaleyi bir ok gibi keserek arka tarafına geçebilirler. Şuracıkta, senin yanında yatıveririm ben." Yardım etmek isterdim, ama burnumu sokmasam daha iyi olur. İşinin ilk gününde bir öğrencinin ağır yaralanmasının, sonra da kendi dispanserinde ölmesinin beklenilmezliği uykuda gezmesi sonucunu doğurmuş olmalıydı. Önünde ejderhalardan daha beter bir şey olamazdı, değil mi? Sorusunun bir nedeni olmalı, diye düşünüyordu."""

print createList(a)

输出:

B u n l a r ı § s ö y l e d i k t e n § s o n r a , § ş i l t e n i n § a l t ı n d a n § b i r § m e k t u p § ç ı k a r d ı . § A n c a k , § b u § k ı r l a n g ı ç l a r § ç o k § k ü ç ü k t ü r l e r § v e § o § k a d a r § h ı z l ı § u ç a r l a r § k i , § ş e l a l e y i § b i r § o k § g i b i § k e s e r e k § a r k a § t a r a f ı n a § g e ç e b i l i r l e r . § Ş u r a c ı k t a , § s e n i n § y a n ı n d a § y a t ı v e r i r i m § b e n . " § Y a r d ı m § e t m e k § i s t e r d i m , § a m a § b u r n u m u § s o k m a s a m § d a h a § i y i § o l u r . § İ ş i n i n § i l k § g ü n ü n d e § b i r § ö ğ r e n c i n i n § a ğ ı r § y a r a l a n m a s ı n ı n , § s o n r a § d a § k e n d i § d i s p a n s e r i n d e § ö l m e s i n i n § b e k l e n i l m e z l i ğ i § u y k u d a § g e z m e s i § s o n u c u n u § d o ğ u r m u ş § o l m a l ı y d ı . § Ö n ü n d e § e j d e r h a l a r d a n § d a h a § b e t e r § b i r § ş e y § o l a m a z d ı , § d e ğ i l § m i ? § S o r u s u n u n § b i r § n e d e n i § o l m a l ı , § d i y e § d ü ş ü n ü y o r d u .