写一个文件ascii ordened

时间:2017-01-15 20:13:03

标签: python python-2.7

我试图将一个文件复制到另一个文件ascii ordened,但是给了我一些错误,例如在第一行它添加了一个没有理由的文件,我试图理解它但是我不明白,如果你认为这种方式不好,请建议我做得更好,谢谢。

demo.txt(一个ascii文件)

!=orIh^
-_hIdH2 !=orIh^
-_hIdH2

代码.py

count = 0
try:
    fcopy = open("demo.txt", 'r')
    fdestination = open("demo2.txt", 'w')
    for line in fcopy.readlines():
        count = len(line) -1
        list1 = ''.join(sorted(line))
        str1 = ''.join(str(e) for e in list1)
        fdestination.write(str(count)+str1)
    fcopy.close()
    fdestination.close()
except Exception, e:
    print(str(e))

音符数是一行中的字母数

输出

7
!=I^hor15
!-2=HII^_dhhor6-2HI_dh

问题是它应该是字母数量然后是asciily ascily

1 个答案:

答案 0 :(得分:3)

代码中的每个line都有一个换行符。对所有字符进行排序时,换行符也会被排序,并移动到适当的位置(通常不再在字符串的末尾)。这会导致在几乎随机的地方发生换行。

您需要的是在排序之前删除换行符并在排序后将其添加回来。此外,循环中的第二个join没有执行任何操作,list1不是列表而是字符串。

str1 = ''.join(sorted(line.strip('\n')))    
fdestination.write(str(count)+str1+'\n')