无法让数据适合 CSV 文件中的单个单元格,怎么办?

Can't get the data to fit in a single cell in a CSV file, what to do?

这是我试过的代码,得到了以下结果。已经尝试了各种方法来解决这个问题。 CSV 文件中的数据似乎分布在多个列和行中,这对我的项目来说并不理想。我已经了解到,可能存在导致此问题的单个单元格阈值的内存。

for i in range(len(read1)):
  if read1[i] in opcodes:
    seq = seq + " " + read1[i]

print(seq)
csvname="/content/drive/MyDrive/sequence.csv"

#approach1

'''
dict1 = {"sequence":seq, "target":1}
'''

#apprach 2

'''
with open(csvname, 'w') as csvfile:
  csvwriter = csv.writer(csvfile) 
      
  # writing the fields 
  
      
  # writing the data rows 
  csvwriter.writerow(seq)
  break
''' 

'''
a_file = open(csvname, "w", newline="")
  
df = pd.DataFrame(dict1, index=[0]) 

#print(df)
# saving the dataframe 
df.to_csv('/content/drive/MyDrive/sequence.csv', mode='a', index=False, header=False) 
'''
#approach 3 -- very bad results
'''
csv_file = open(csvname, "w")
csv_file.write(seq)
'''


a_file.close()

请注意,我已经评论了解决这个问题的各种方法,而且所有方法似乎都给出了相似的输出

It is spread over multiple cells and columns and rows. P.S: huge dataset

请注意,CSV 文件无法指定 Excel 其显示方式。加载时,您需要将列拖得更宽。如果您想要单个单元格 CSV,它可以是其中任何地方没有逗号的任何数据。

下面的方法会给你一个单元格,但它仍然会出现在多个单元格中。列表理解可用于从 read1opcodes 创建 seq。这比重复附加字符串更有效。

import csv

opcodes = ['cmp', 'add', 'dev', 'mov', 'retn', 'push', 'pop', 'lea']  # example data
read1 = ['cmp', 'test', 'add', 'sub', 'dev', 'mov', 'mul', 'retn', 'push']
seq = ' '.join(op for op in read1 if op in opcodes)

with open('output.csv', 'w', newline='') as f_output:
    csv.writer(f_output).writerow([seq])

给你一个文件包含:

cmp add dev mov retn push

这最初会在 Excel 中显示为:

但是如果您拖动该列,您将得到:

如果您想自动更改 Excel 显示数据的方式,您需要将数据保存为 Excel 格式 .xlsx。然后可以指定列宽。这可以使用 openpyxl.

等库来完成

注意:可以按如下方式添加第二列:

csv.writer(f_output).writerow([seq, 'a second column'])