簡體   English   中英

如何從文件中讀取並將其作為整數放入列表中? Python

[英]How do I read from a file and put it into a list as an integer? Python

這就是我所擁有的

file = open("numberlist.txt")
list = []
for line in file:
      line = line.strip()
      list.append(line)

我會在文件中的 for 行中將每一行轉換為整數:我該怎么做?

可選:如果我在numberlist.txt有非數字字符? 我該如何測試並且必須編程告訴我文件不正確?

如果每一行都有一位數字,則可以直接使用文件對象map函數:

with open("numberlist.txt") as f:
     num_list=map(int,f)

注意:永遠不要使用 python 內置名稱作為變量名,也不要使用with語句打開文件。

with 語句用於用上下文管理器定義的方法包裝塊的執行。

閱讀有關with語句及其使用優勢的更多信息。 https://docs.python.org/2/reference/compound_stmts.html

但是,如果根據文件的外觀,文件中可能有非數字字符,則可以使用一些方法,例如可以使用try-except語句完成的exception-handling

因此,如果我們假設您在每一行中有一個單詞(包含數字或字符),您可以這樣做

num_list=[]
with open("numberlist.txt") as f:

  for line in f:
     try :
       num_list.append(int(line))
     except:
       continue #or other stuffs

請注意,這可能有很多場景,根據您的代碼,您可以使用各種方法!

如果願意,您可以使用int構造函數或 type-caster 將字符串轉換為整數。 如果轉換不可能,它會拋出一個ValueError

int_value = int(strvalue)

在python中對列表中的所有元素執行相同操作的一個好方法是使用map函數。 在解釋器中做一個help(map)看看它是如何工作的

# assuming that the file exists
file = open("numberlist.txt")
my_list = []
for line in file:
        line = line.strip()
        list.append(line)
try:
    list_of_ints = map(int, my_list)
except ValueError:
    print("invalid file")

要檢查列表是否正確,請將操作放在 try-except 塊中。

您可以使用with語句在幾行中完成所有這些操作

with open("numbers.txt") as file_object:
    try:
        list_of_ints = map(int, (l.strip() for l in file_object))
    except ValueError:
        print("invalid file")

在這里,我使用 file_object 作為可迭代對象(它給出了文件中的所有行)。 並使用生成器語法創建另一個可應用 map 函數的可迭代對象

file = open("numberlist.txt",'r')
l = []

for line in file:
    line = line.split()
    try:
        l.append(int(line[0]))
    except:
        continue

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM