我对python有点陌生。我正在尝试对字符串和整数列表进行排序。列表包含一些需要过滤掉的符号(即 ro!ad 应该以 road 结尾)。而且,它们都在一行上,由空格隔开。所以我需要使用 2 个参数;一个用于输入文件,然后是输出文件。它应该先用数字排序,然后是没有特殊字符的单词,每个单词都在不同的行上。我一直在查看大量的列表函数,但是在将它们组合在一起时遇到了一些麻烦,因为我从来没有做过这样的事情。有接盘侠吗?
到目前为止,我有基本的东西
#!/usr/bin/python
import sys
try:
infilename = sys.argv[1] #outfilename = sys.argv[2]
except:
print "Usage: ",sys.argv[0], "infile outfile"; sys.exit(1)
ifile = open(infilename, 'r')
#ofile = open(outfilename, 'w')
data = ifile.readlines()
r = sorted(data, key=lambda item: (int(item.partition(' ')[0])
if item[0].isdigit() else float('inf'), item))
ifile.close()
print '\n'.join(r)
#ofile.writelines(r)
#ofile.close()
输出准确地显示了文件中的内容,但与文件的写入完全一致,并且根本没有排序。目标是获取一个文件(arg1.txt)并对其进行排序并创建一个新文件(arg2.txt),该文件将是 cmd 行变量。在这种情况下,我使用 print 来加快编辑速度,但需要将其写入文件。这就是为什么输出文件区域被评论的原因,但如果我把它搞砸了,请随时告诉我我很愚蠢!谢谢你的帮助!