我试图将一个文件复制到另一个文件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
答案 0 :(得分:3)
代码中的每个line
都有一个换行符。对所有字符进行排序时,换行符也会被排序,并移动到适当的位置(通常不再在字符串的末尾)。这会导致在几乎随机的地方发生换行。
您需要的是在排序之前删除换行符并在排序后将其添加回来。此外,循环中的第二个join
没有执行任何操作,list1
不是列表而是字符串。
str1 = ''.join(sorted(line.strip('\n')))
fdestination.write(str(count)+str1+'\n')