导入csv文件(一行字符串)



这里是我的csv文件内容:

'GK', 'M', 'A', 'D', 'M', 'D', 'M', 'M'

我尝试将csv文件作为字符串列表导入python程序,如下所示:

['GK', 'M', 'A', 'D', 'M', 'D', 'M', 'M']

但是,通过csv.reader,它返回一个列表列表,并且只包含一个字符串,如:

["'GK', 'M', 'A', 'D', 'M', 'D', 'M', 'M'"]

我试图找出解决方案,但它采取了太多步骤,如下所示:

import csv
filepath = 'positions copy.csv'
file = open(filepath)
data = file.read().splitlines()
print(data)
data_2 = ''.join(data)
print(data_2)
data_3 = data_2.replace("'", "").replace(" ","")
print(data_3)
positions = data_3.split(',')
print(data_4)

有更短的解决方案吗?

这是一个使用csv读取器的答案,它是使用csv阅读器的一些可选参数完成的,您可以在这里看到所有这些参数。请注意,delimeter默认为",因此在您的示例中并不严格需要它:

import csv
with open("positions copy.csv",'rt') as f:
print(next(csv.reader(f,delimiter = ',', quotechar = "'", skipinitialspace = True)))

使用此

with open('file1.txt',encoding='utf-8') as data:
print(data.read().strip().strip('"'))

使用'pandas'模块。

import pandas as pd
file=pd.read_csv('Your File')

现在文件是pandas DataFrame,但如果你想要numpy ndarray,请添加以下内容:

file=file.values

给定当前目录(data.csv(中包含以下内容的文件:

'GK', 'M', 'A', 'D', 'M', 'D', 'M', 'M'

以下代码将:

  1. 将文件中的内容读取到data变量
  2. data字符串拆分为字符串列表,由字符序列,分隔
  3. 从每个列表项中删除字符'的任何实例
  4. 从每个列表项中去掉任何前导/尾随空格
with open('data.csv', 'r') as f:
data = f.read()
data = [ s.replace(''', '').strip() for s in data.split(', ') ]

结果是一个字符串列表(data(,当调用print(data)时如下所示:

['GK', 'M', 'A', 'D', 'M', 'D', 'M', 'M']

相关内容

  • 没有找到相关文章

最新更新