導航:首頁 > 編程語言 > pythonsplit中文亂碼

pythonsplit中文亂碼

發布時間:2022-08-09 08:06:11

1. python: split的用法,在後面的括弧不同,輸出的也不一樣,大神能不能幫忙解釋一下下面的例子。

split的第一個參數是分隔符。
如果省略第一個參數,默認把所有的空格、製表符、回車符當作分隔符,並過濾掉空串。這個也是你第一種寫法的效果。

line.split(『\t''\n')

'\t'和'\n'是兩個字元串,會自動進行拼接,形成'\t\n'作為分隔符。而在你輸入的字元串中,不包含這樣的字串,所以就分割的結果就是原串。

split(『\t')

以'\t'作為分隔符,分割的結果就是第三種寫法。

split不支持同時使用多種字元做分隔符,如果想實現這樣的效果,可以用re,例如:
>>> a
'wowofbfwjowoefbwfoweojbwoefja'
>>> import re

>>> re.split('[ab]', a)
['wowof', 'fwjowoef', 'wfoweoj', 'woefj', '']

2. python 中怎麼讀取txt文件中的中文文字

代碼:

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

f = open('luciatest1.txt', encoding='gb18030')
filecontent = f.read()
print(filecontent)


運行效果:

3. Python里使用split("\r\n")分割html字元串,報錯TypeError:a bytes-like object is required,not 'str'

read()後加.decode('utf8')

4. Python字元串操作的split方法

str.split()沒有參數,代表以空字元分割,空字元包括空格、製表符、回車符、換行符等。因此,字元串中的空格和\n都是無參的split()的分割符。Line1-abcdef \nLine2-abc \nLine4-abcd分割後得到['Line1-abcdef', '', 'Line2-abc', '', 'Line4-abcd'],然後,split會拋棄得到的所有空字元串,因此最終結果就是['Line1-abcdef', 'Line2-abc', 'Line4-abcd']。

5. python的split函數亂碼了怎麼辦

首先變數最好別命名成str,因為有str這個函數,我就假設你用的是str0了
對於你的問題,應該是編碼的問題,和split沒有關系,你可以直接print str0看看。要解決問題,就是進行轉碼:str0=str0.decode("utf-8").encode("gbk"),然後進行str1=str0.split(),

6. python編程中中文輸出亂碼UnicodeEncodeError: 'ascii' codec can't encode character

樓主你好!

其實按照你的代碼的邏輯來做是沒有錯的,無法顯示成utf-8編碼的文本其實是因為在request請求的時候,按照網頁的標識轉了碼,接著BeautifulSoup把已經是utf-8的文本又強轉了一次utf-8編碼,導致了無法正確的顯示,以想要拿到的時間為例,其實程序的目標字元串應該如下:

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

'''我們想要使用的字元串'''
target_str=':53'

'''兩次轉碼後的字元串'''
get_str=u':53'


歸根結底是兩個對象的類不同,但python不支持這兩種類型的強轉,個人想了個比較臨時的解決方案,算是個python打了個補丁,就是將字元串轉成二進制,再轉回字元串,這樣就unicode就不用給他加上編碼方式再轉成二進制字元串了,修改後的代碼如下:

#-*-coding:utf-8-*-
importrequests
frombs4importBeautifulSoup
fromdatetimeimportdatetime

defencode(s):
'''將字元串轉成二進制'''
return''.join([bin(ord(c)).replace('0b','')forcins])

defdecode(s):
'''將二進制轉換成字元串'''
return''.join([chr(i)foriin[int(b,2)forbins.split('')]])

res=requests.get('
)
res.encodeing='utf-8'

soup=BeautifulSoup(res.text,'html.parser')

'''每個中文字元都進行轉換處理'''
title=decode(encode(soup.select('#artibodyTitle')[0].text))
time=decode(encode(soup.select('.time-source')[0].contents[0].strip()))

chinese='%Y年%m月%d日%H:%M'
timesource=datetime.strptime(time,chinese)
print(title)
print(timesource)

看樓主在研究的過程中,對字元串的編碼原理的理解還有所欠缺,這方面的資料在網上很多,可以再自行研究一下,能夠獲得長足的進步。

望採納,謝謝!

7. php "str_split"函數分割中文字元串亂碼問題……

一個解決方案.
測試發現,preg_split對中文(多位元組)的分隔符處理可能真的存在問題.
原因可能是正則匹配時不能正常分隔一個多位元組字元(猜測).
但我實驗用半形(英文)的分隔符就工作得很好.
於是
我在處理待分隔的文本前先對文本進行替換,把中文的句點和逗號都替換成英文半形的.然後再使用preg_split,暫時發現工作得不錯.
以下是我的測試代碼.
<?php
$test = <<<EOF
記者從有關人士處獲悉,嫦娥二號發射的各項准備工作全部就緒,昨日經專家組評審,衛星、火箭、發射場、測控等系統均情況正常,具備發射條件。今天起,西昌衛星發射中心的加註手將為火箭加註燃料。

據一位航天專家介紹,因為地球和月球都在轉動的緣故,所以地月之間的最佳交匯點每年僅出現3次,而這3次便是發射探月衛星的最佳節點,經過觀測,今年3次的出現時間分別為10月1日、10月2日和10月3日,而最佳發射窗口則是1日晚7時,2日晚8時和3日晚10時,其中國慶日晚7時為佳中之佳。

針對媒體稱10月1日發射窗口時間為晚6時59分57秒,該專家告訴本報記者,早3秒並非提前3秒發射,而是將這3秒時間預留出來,作為現場指揮員在發送倒計時口令的緩沖時間。(記者萬強)

EOF;

//$input = $_POST[$content]; //........................獲取要分割的字元串
$test = str_replace(",",',',$test);
$test = str_replace("。",'.',$test);
$mode="/[,|.]/s"; //......................用「逗號」 和 「句號」 分割字元串

$output = preg_split($mode,$test,-1);

print_r($output);
?>
============
樓主不防試試,我的代碼是gb2312的字串.
經測試在,字元串為UTF8時,也可以正常工作.

8. python 字元串分割split()函數中中英文逗號分割

在我這里沒有問題啊,能夠正確地分割。注意最好不要用內置函數名稱作為變數名。

閱讀全文

與pythonsplit中文亂碼相關的資料

熱點內容
交通信號燈單片機課程設計 瀏覽:826
如何測試流媒體伺服器的並發能力 瀏覽:161
溯源碼有分國家認證的嗎 瀏覽:218
如何通過app查詢產檢報告 瀏覽:944
拉結爾安卓手機怎麼用 瀏覽:695
驅動級進程代理源碼 瀏覽:782
androidshape畫線 瀏覽:510
程序員想辭職被拒絕 瀏覽:101
java面試邏輯 瀏覽:749
如何下載全英文app 瀏覽:724
js函數式編程指南 瀏覽:380
為什麼安卓手機相機啟動會卡 瀏覽:341
python中t是什麼意思 瀏覽:765
移動硬碟內存加密 瀏覽:407
單片機測角度 瀏覽:864
URL伺服器地址怎麼填 瀏覽:438
壓縮餅干會導致血糖高嗎 瀏覽:569
cad中xc命令怎麼用 瀏覽:424
戴爾伺服器怎麼看網卡介面 瀏覽:823
鹽鐵論pdf 瀏覽:424