Python 按ascii顺序写入文件

Python 按ascii顺序写入文件,python,python-2.7,Python,Python 2.7,我正在尝试将一个文件复制到另一个ascii文件,但给了我一些错误,例如在第一行它添加了一个\n,没有任何原因,我正在尝试理解它,但我不明白,如果您认为这种方式不好,请建议我做得更好,谢谢 demo.txt(ascii文件) 代码.py count = 0 try: fcopy = open("demo.txt", 'r') fdestination = open("demo2.txt", 'w') for line in fcopy.readlines():

我正在尝试将一个文件复制到另一个ascii文件,但给了我一些错误,例如在第一行它添加了一个\n,没有任何原因,我正在尝试理解它,但我不明白,如果您认为这种方式不好,请建议我做得更好,谢谢

demo.txt(ascii文件)

代码.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))
Note count是一行中的字母数

输出

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

问题是它应该是字母的数量,然后按顺序排列

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

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

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

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

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

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

哇,真是妙计!!非常感谢@DYZ,顺便说一句,我做“复制”的方式是正确的吗?哇,这真是妙招!!非常感谢@DYZ,顺便说一句,我做“复制”的方式是正确的吗?