Python 3.x 使用Python3.X从csv文件中提取数字和文本
我试图用python 3.6从csv文件中提取数据。 数据包括数字和文本(其url地址): 在多个论坛上,我发现了这种代码:Python 3.x 使用Python3.X从csv文件中提取数字和文本,python-3.x,csv,numpy,genfromtxt,Python 3.x,Csv,Numpy,Genfromtxt,我试图用python 3.6从csv文件中提取数据。 数据包括数字和文本(其url地址): 在多个论坛上,我发现了这种代码: data = numpy.genfromtxt(file_name, delimiter=',', skip_header=skiplines,) 但这只适用于数字,url地址被读取为NaN 如果添加数据类型: data = numpy.genfromtxt(file_name, delimiter=',', skip_header=skiplines, dtype=N
data = numpy.genfromtxt(file_name, delimiter=',', skip_header=skiplines,)
但这只适用于数字,url地址被读取为NaN
如果添加数据类型:
data = numpy.genfromtxt(file_name, delimiter=',', skip_header=skiplines, dtype=None)
url地址读取正确,但地址开头有一个“b”,例如:
b'http://example.com'
我怎样才能去掉它?我怎么能得到简单的文本字符串呢
我还发现了这个选项:
file = open(file_path, "r")
csvReader = csv.reader(file)
for row in csvReader:
variable = row[i]
coordList.append(variable)
但是它似乎与python3有一些问题。这篇文章的答案显示了一个纯Python和一个使用genfromtext混合数据的Numpy解决方案:“但是它似乎与python3有一些问题。”:哪一个是?不要让我们猜测,让我们看看问题所在。(很可能,就像前面的
b
一样,您在Python 3中遇到了unicode问题。您可以转换字节对象b'http://example.com通过使用.decode()
方法:b'http://example.com'.decode()例如,getfromtxt
读取字节对象的原因是它不知道它是什么类型的文本(无聊的英语、中文或…?),因此它假设它只是一堆字节。转换它取决于您。或者,您可以尝试在genfromtxt
中指定数据类型,使用例如'U80'
,事情可能会更好。另请参见。b
仅表示genfromtxt
已将字符串作为bytestring加载。Py3中的默认字符串类型为unicode
。在Py2中,默认值为bytestring。查看数据.dtype
。文本字段将具有Sn
类型。如果是unicode,则具有Un
。可以指定dtype
(而不是authomaticNone
)对于U
类型,如果b
真的困扰您,请键入。对于许多用途,字符串是unicode还是byte并不重要。这一个的答案显示了一个纯Python和一个使用genfromtext混合数据的Numpy解决方案:“但它似乎与python3有一些问题。”:哪些是?不要让我们猜测,展示问题。(很可能,就像前面的b
一样,您在Python 3中遇到了unicode问题。您可以转换字节对象b'http://example.com通过使用.decode()
方法:b'http://example.com'.decode()例如,getfromtxt
读取字节对象的原因是它不知道它是什么类型的文本(无聊的英语、中文或…?),因此它假设它只是一堆字节。转换它取决于您。或者,您可以尝试在genfromtxt
中指定数据类型,使用例如'U80'
,事情可能会更好。另请参见。b
仅表示genfromtxt
已将字符串作为bytestring加载。Py3中的默认字符串类型为unicode
。在Py2中,默认值为bytestring。查看数据.dtype
。文本字段将具有Sn
类型。如果是unicode,则具有Un
。可以指定dtype
(而不是authomaticNone
)如果b
真的困扰您,请使用U
类型。对于许多用途,字符串是unicode还是byte并不重要。
file = open(file_path, "r")
csvReader = csv.reader(file)
for row in csvReader:
variable = row[i]
coordList.append(variable)