对文件进行排序,然后使用Python将其存储到新文件中
所以我必须按字母顺序对文件进行排序,这不是我的问题。我可以这样做,但我的问题是将排序后的列表写入一个新文件。这是我的对文件进行排序,然后使用Python将其存储到新文件中,python,file,sorting,Python,File,Sorting,所以我必须按字母顺序对文件进行排序,这不是我的问题。我可以这样做,但我的问题是将排序后的列表写入一个新文件。这是我的 import os os.chdir("/Users/User/Documents") #(I put my name where it says "User") user_file = open("info.txt", "r") file = user_file.read() file_string = file.split("\n") file_string.sort()
import os
os.chdir("/Users/User/Documents") #(I put my name where it says "User")
user_file = open("info.txt", "r")
file = user_file.read()
file_string = file.split("\n")
file_string.sort()
print(file_string) #This is here just so I can see that it sorted correctly
end_file = open("write.txt", "w")
for item in file_string:
end = end_file.write(str(item))
print(end)
好的,我的info.txt是需要按字母顺序排列的,它只是一个颜色列表。所以我的最后4行是我挣扎的地方。我试图将文件字符串中的每一项都写入一个新文件,但print(end)给出了它们的字符数。我做错了什么?
谢谢方法write()
返回写入的字节数,因此它按设计工作
但是,您希望将换行符写入文件(因为在换行符上拆分时已将其从原始文件中删除),并且千万不要忘记将其关闭,所以
for item in file_string:
end_file.write(item + "\n")
end_file.close()
将正常工作
不过,更好的解决方案是:
with open("info.txt", "r") as user_file:
file = user_file.readlines()
file.sort()
with open("write.txt", "w") as end_file:
end_file.writelines(file)
甚至
with open("info.txt", "r") as user_file, open("write.txt", "w") as end_file:
end_file.writelines(sorted(user_file.readlines()))
在Python3.x中,返回写入文件的字符数,您不必担心
我能想到的唯一问题是,您没有在单词后面添加任何'\n'
,因此所有项目最后都写在同一行上
with open("write.txt", "w") as f:
for item in file_string:
end_file.write(item + '\n')
试着这样做。是的,这是完整的解决方案
import os
os.chdir(r'C:\Users\<username>\Documents')
lines = open("info.txt", "r").readlines()
lines.sort()
with open("write.txt", "w") as out:
out.writelines(lines)
导入操作系统
chdir(r'C:\Users\\Documents')
lines=open(“info.txt”,“r”).readlines()
line.sort()
打开(“write.txt”、“w”)作为输出:
out.writeline(行)
那么,文件中的项目不是吗?(如果您找不到该文件,它位于您的文档目录中。)“打印结束文件”是什么意思?如果要在屏幕上打印已排序的行,只需对文件中的行执行操作:打印(行)
或打印(“”。加入(文件中的行的行))