/ / Pythonインポートテキストフォーマット - python、string、import、text-files

Pythonインポートtxtフォーマット - Python、文字列、インポート、テキストファイル

数字のリストを含むExcelファイルがあり、それを .txt ファイルしてから言って行きました:

open_file = open("list_of_numbers.txt","r")

for number in open_file:
number = int(number)
while x < 20000:
if (x > number):
print number
x = x + 100
y = y + 100

そして、私はこのエラーメッセージを受け取りました:

ValueError:base 10のint()の無効なリテラル: "2100.00rn"

どのように私は取り除くことができます " そしてその rn"

私の究極の目標は、数字の列の隣に別の列を作成することです。

145, "100-199"
167, "100-199"
1167, "1100-1199"

そのような出力です。

回答:

回答№1は4

答えとしましょう。問題はそうではありません。 rn。問題は、float値を整数として含むストリングを解析しようとしていることです。 (改行なし、改行文字)を参照してください。

>>> int("2100.00")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: "2100.00"

(ご覧のとおり、引用符は " 値の一部ではありません、彼らは単にあなたが文字列を扱っていることを示します)

一方、

>>> int("2100rn")
2100

ドキュメンテーション 言う:

引数が文字列の場合は、Pythonの整数として表現できる符号付き10進数を空白で埋め込む必要があります。

Python整数リテラル定義が見つかる場所 ここに.

溶液:

つかいます float

>>> float("2100.00rn")
2100.0

あなたが望むなら、あなたはそれを整数に変換することができます。 round):

>>> int(float("2100.00rn"))
2100

float値から整数値への変換は、 ドキュメンテーション):

浮動小数点数から整数への変換は(ゼロに向かって)切り捨てられます。


回答№2の場合は1

あなたの当面の問題に対処するために、@フェリックスクリングによる答えと共に行きなさい。

あなたがあなたの将来の問題に興味を持っているならば、読んでください。

(1)それ r この部分の問題の一部ではありません。CASE、しかし興味深いです:あなたはWindows上でファイルを作成し、Linux / OSX / etc上でそれを読んでいますか?その場合は、テキストファイルを "rU"(universal newlines)で開く必要があります。これにより、Pythonの入力行には、 n.

(2)いずれにしても、実行するのはとても良い考えです。 line = line.rstrip("n") それ以外の場合は、行の分割方法によっては、最後のフィールドに不要な要素が含まれることがあります。 n.

(3)あなたが使うのを好むかもしれません xlrd Excelファイルから直接読み取るには - これはあらゆる面倒な手間を省きます。 [Dis] claimer:私はxlrdの作者です。


回答№3の場合は-1

これを試して:

number = int(number.strip(string.whitespace + """))

あなたが追加する必要があります import string スクリプトの最初にまた見なさい: http://docs.python.org/library/stdtypes.html#str.strip