Python-对于文本文件中的每个值?

Python-对于文本文件中的每个值?,python,file,text,Python,File,Text,对于我正在编写的代码,我使用逗号将一个文本文件拆分,现在对于其中的每个值,我希望将其设置为整数。我尝试过拆分文本文件,然后将其转换为整数,但这不起作用。对于文件中的所有值,是否有任何方式可以表示“执行某项操作”?此外,价值的多少并不具体,它取决于程序的用户(这是一个“购物清单”程序)。 我当前的代码: TotalCOSTS=open("TotalCOSTS.txt","r") Prices=TotalCOSTS.read() print(Prices) Prices.strip().split

对于我正在编写的代码,我使用逗号将一个文本文件拆分,现在对于其中的每个值,我希望将其设置为整数。我尝试过拆分文本文件,然后将其转换为整数,但这不起作用。对于文件中的所有值,是否有任何方式可以表示“执行某项操作”?此外,价值的多少并不具体,它取决于程序的用户(这是一个“购物清单”程序)。 我当前的代码:

TotalCOSTS=open("TotalCOSTS.txt","r")
Prices=TotalCOSTS.read()

print(Prices)
Prices.strip().split(",")
IntPrices=int(NewPrices)
print(len(IntPrices))

if len(IntPrices)==1:
    print("Your total cost is: "+IntPrices +" Pounds")
elif len(IntPrices)>1:
    FinalTotal = sum([int(num) for num in IntPrices.split(",")])
    print("Your total cost is: "+ FinalTotal +" Pounds")
Prices是包含值的文件,所以我去掉了空白,然后将其拆分。这就是我需要继续的地方。 谢谢xx

results = [int(i) for i in results]
python 3您可以执行以下操作:

results = list(map(int, results))
  • 您的代码示例中未定义NewPrices
  • split()返回一个列表
  • 要完成您正试图完成的任务,最直接的方法是:

    total = sum([int(x) for x in TotalCOSTS.read().split(',') if x.isdigit() == True])
    
    <> P>但是这使得一些非常简单的假设不会一直是准确的。例如,如果某个东西花费了2.99美元,In()将这个值转换成3。总的来说,你想考虑美分的价格(IDK你使用的是哪种货币,但是美元,100美分=1美元),所以2.99美元=299美分。 所以,你真的想要这样的东西:

    total = sum([float(x)*100 for x in TotalCOSTS.read().split(',') if x.isnumeric() == True])/100
    

    为什么不建议在python 3中使用列表理解?有什么具体原因吗?列表comp应该同时使用这两种方法。我不确定,但我认为在python 3中,map方法更快。我主要是2.7版的开发人员,所以不要把它当作福音。在py 2中,它应该是
    results=map(int,results)