私はPythonに少し慣れていません。文字列と整数のリストを並べ替えようとしています。リストには、フィルターで除外する必要のある記号がいくつか含まれています (つまり、ro!ad は道路で終了する必要があります)。また、それらはすべてスペースで区切られた 1 行にあります。したがって、2 つの引数を使用する必要があります。1 つは入力ファイル用、次に出力ファイル用です。最初に数字でソートし、次に特殊文字を含まない単語をそれぞれ別の行にソートする必要があります。私はたくさんのリスト関数を見てきましたが、このようなことをする必要がなかったので、これをまとめるのに苦労しています. テイカーはいますか?
これまでのところ、私は基本的なものを持っています
#!/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) を作成することです。この場合、編集を高速化するために印刷を使用しましたが、ファイルに書き込む必要があります。そのため、出力ファイルの領域にコメントが付けられていますが、それを台無しにしてしまった場合は、遠慮なく言ってください。助けてくれてありがとう!