Python-读取部分CSV单元格

时间:2019-04-10 21:22:50

标签: python csv

对于一个项目,我正在寻找拆分CSV文件单元格中包含的数据的方法-CSV文件是由另一台设备输出的,不能更改。所涉及的CSV单元将包含8个字符,前4个用于指定X坐标,后4个用于y坐标。我希望能够读取前4个字符,将它们另存为变量,然后对后4个字符重复。使用python CSV阅读器可以吗?

2 个答案:

答案 0 :(得分:0)

是的。

import csv
with open('csv_file.csv') as f:
    csv_data = []
    cr = csv.reader(f)
    for row in cr:
        csv_data.append(row)
# say the data you want is in (both zero-indexed) row 3, column 5
x_coord = csv_data[3][5][:4]
y_coord = csv_data[3][5][4:]

如果所有单元格都是这样(并且需要拆分),则可以在将文件读入csv_data时执行此操作。

import csv
with open('csv_file.csv') as f:
    csv_data = []
    cr = csv.reader(f)
    for row in cr:
        x_coords = [c[:4] for c in row]
        y_coords = [c[4:] for c in row]
        csv_data.append(zip(x_coords, y_coord))

因此,如果原来的单元格(0,0)是'00340633'代表坐标:('0034','0633'),那么现在它将是csv_data[0][0]将是('0034', '0633')。您可能需要转换为intfloat。例如x_coords = [int(c[:4]) for c in row],具体取决于每个单元格中的数据类型。

答案 1 :(得分:0)

您是否要拆分固定8个字符的字符串?请尝试以下代码:

test =  'aaaabbbb'
print(test[0:4])
print(test[4:])

或者如果中间有一个标志,您也可以将其拆分:

test2 =  'aaaa bbbb'
# split by blank, putput is a list
print(test2.split(' '))  
# Result: ['aaaa', 'bbbb']