蟒蛇;将输出以Unix格式写入新文件

时间:2018-10-19 06:06:51

标签: python pandas dataframe

我使用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文件写入以作为数据帧加载?

1 个答案:

答案 0 :(得分:1)

write仅将您告诉它的字符串恰好放入文件中。还要明确地换行;

    ID_file.write(ID + '\n')

或使用print代替,它在每个写入的字符串的末尾提供换行符(除非另有明确说明)。