数字のリストを含む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