我使用python从多个文件(此代码中的基本名称)创建具有ID的文件
ID = basename + ' ' + str(i) + ' ' + record.id
with open('ID.out' ,'a', newline='\n') as ID_file:
ID_file.write(ID)
我的输出看起来像这样
Base1 1 ID1
Base1 2 ID2
Base2 1 ID1
Base2 2 ID2
在我的脚本中,我想使用此文件,并将其作为数据帧加载。我使用以下代码
df = pd.read_csv('ID.out', header=None, sep=' ', names = ['base', 'number', 'ID'])
但是,当我这样做时,数据框不会读取不同的列,而是将所有内容都放在一列中
base / Base1 1 ID1Base1 2 ID2Base2 1 ID1Base2 2 ID2
number / Base1 1 ID1Base1 2 ID2Base2 1 ID1Base2 2 ID2
ID / Base1 1 ID1Base1 2 ID2Base2 1 ID1Base2 2 ID2
我试图在记录后设置换行符
ID = basename + ' ' + str(i) + ' ' + record.id + '\n'
并且数据框看起来还不错,但只会将最后添加的碱基加载到df
base number ID
0 Base2 1 ID1
1 Base2 1 ID2
如何更改我的代码,以正确地将ID.out文件写入以作为数据帧加载?
答案 0 :(得分:1)
write
仅将您告诉它的字符串恰好放入文件中。还要明确地换行;
ID_file.write(ID + '\n')
或使用print
代替,它在每个写入的字符串的末尾提供换行符(除非另有明确说明)。