0

これが一般的な問題かどうかはわかりませんが、同様のことが起こっている人を見つけることができませんでした. 基本的に何が起こったのかというと、ファイルから一連の文字列を取得し、それらすべてを個別の変数にソートしました。これはすべて正常に機能しています。ただし、これを使用して印刷する場合:

print eventlist[i][1] + " to " + eventlist[i][2] + " | " + eventlist[i][3] + eventlist[i][4]

1行だけでなく、複数の行で出力を取得します。

12:30AM to 1:30PM | ECS 124
CSC 360

私は\n文字を取り除こうとしましeventlist[i][3]たが、理論的には正常に動作しますが、印刷行のその後のすべてを行の先頭に送信し、既にあるものを上書きします:

location = eventlist[i][3].rstrip("\n")
print eventlist[i][1] + " to " + eventlist[i][2] + " | " + location + eventlist[i][4]

になります:

CSC 360 to 1:30PM | ECS 124

それ以外の:

12:30AM to 1:30PM | ECS 124 CSC 360

また、読み取られた行から最後の文字を削除しようとしましたが(location = line[9:-1])、同じ問題が発生しました

正確な問題を絞り込むことはできましたが、修正する方法を見つけることができませんでした。私はpythonが初めてで、何時間もグーグルで検索しています。どんな助けでも大歓迎です!

4

3 に答える 3

2

入力には\r、文字に加えて文字が含まれている可能性があり\nます。これらの特殊文字は、本質的に自動タイプライターであるテレタイプ マシンの時代にさかのぼります。、\rまたは return は、キャリッジを行の先頭に戻すようにテレタイプに指示し\n、 または new line は、プラテンを次の行に進めるようにテレタイプに指示します。改行文字を削除すると、端末 (半) はテレタイプ マシンを忠実にエミュレートし、現在の行を上書きします。実際のテレタイプでは、元のテキストを上書きします。これを何度も繰り返すと、紙がすり減ってしまうでしょう。しかし、ビデオ ターミナル (VT) では、以前存在していた文字が置き換えられるだけです。

これを修正するには、\r文字も削除する必要があります。

于 2013-10-19T22:35:18.347 に答える