謝謝你的問題,羅馬你的答案。我不得不尋找一點才能找到它;我希望以下幫助他人。
的Python 2.7
參見:https://docs.scipy.org/doc/numpy-dev/user/basics.io.genfromtxt.html
import numpy as np
from StringIO import StringIO
data = "1, abc , 2\n 3, xxx, 4"
print type(data)
"""
<type 'str'>
"""
print '\n', np.genfromtxt(StringIO(data), delimiter=",", dtype="|S3", autostrip=True)
"""
[['1' 'abc' '2']
['3' 'xxx' '4']]
"""
print '\n', type(data)
"""
<type 'str'>
"""
print '\n', np.genfromtxt(StringIO(data), delimiter=",", autostrip=True)
"""
[[ 1. nan 2.]
[ 3. nan 4.]]
"""
的Python 3.5:
import numpy as np
from io import StringIO
import io
data = "1, abc , 2\n 3, xxx, 4"
#print(data)
"""
1, abc , 2
3, xxx, 4
"""
#print(type(data))
"""
<class 'str'>
"""
#np.genfromtxt(StringIO(data), delimiter=",", autostrip=True)
# TypeError: Can't convert 'bytes' object to str implicitly
print('\n')
print(np.genfromtxt(io.BytesIO(data.encode()), delimiter=",", dtype="|S3", autostrip=True))
"""
[[b'1' b'abc' b'2']
[b'3' b'xxx' b'4']]
"""
print('\n')
print(np.genfromtxt(io.BytesIO(data.encode()), delimiter=",", autostrip=True))
"""
[[ 1. nan 2.]
[ 3. nan 4.]]
"""
旁白:
D型= 「| SX」,其中x =任何的{1,2,3,...}:
dtypes. Difference between S1 and S2 in Python
「的| S1和| S2的字符串是數據類型描述符;第一裝置陣列保持長度1,長度爲2的第二串...」
值得一提的是這些不一樣,所以你可以結果 與'TypeError's(預期的字符串參數,得到'字節'),如果你孤立地進行此更改。你需要仔細區分python 3中的btyes和str(unicode)。 – 2015-04-22 03:13:47
對於像我這樣的新手來說:從io import StringIO意味着你把它稱爲StringIO(),而不是io.StringIO()。 – Noumenon 2015-07-07 23:43:54
如何實際上與Python 2和3兼容:只是'從io import StringIO' – 2015-08-11 19:35:43