对于一个项目,我正在寻找拆分CSV文件单元格中包含的数据的方法-CSV文件是由另一台设备输出的,不能更改。所涉及的CSV单元将包含8个字符,前4个用于指定X坐标,后4个用于y坐标。我希望能够读取前4个字符,将它们另存为变量,然后对后4个字符重复。使用python CSV阅读器可以吗?
答案 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')
。您可能需要转换为int
或float
。例如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']