システムにインストールされているすべてのパッケージのリストを取得しようとしています。このためには、Pythonスクリプト内から 'rpm -qai'を呼び出して、出力のさらなる変換が行われます。rpmクエリの出力をセパレータでフォーマットする
私は一種の今上記のクエリの出力が異なるパッケージを分離しないという問題に遭遇しました。
$ rpm -qai
Name : PackageName
Version : 1.0
...
LastEntry: Something
Name : NextPackageName
Version : 1.1
...
私は何をしたいことは、私のスクリプトはラインのためにすべての行を読み取り、辞書内の行が保存されますので
Name : PackageName
Version : 1.0
...
LastEntry: Something
//empty line or some other kind of separator
Name : NextPackageName
Version : 1.1
...
のラインに沿って何かである:これは、次のようになります。私の回避策は、現在の行が 'Name'で始まっていればチェックし、そうであれば辞書をリストに追加して辞書をクリアする。このステップは最初の行でスキップされます。
このソリューションは非常に醜いです。残念ながら、すべてのパッケージが同じ量の情報を提供するわけではないので、固定数の行は機能しません。
は、私はまた、その後、このことから、すべてのパッケージ名のリストを取得し、最初の「回転数-qai」を実行「のrpm -qi current_item」の呼び出し中にリストを反復処理について考えました。次に、それぞれの単一のクエリから出力を取得できます。しかし、これは2回の実行が必要なので、私はそれが不必要な余分な仕事とみなします。
ので、RPM(または他のツール)は、所望の出力を可能にする機能を提供していますか?
これは良い提案ですが、実際の回答ではありません。 –