我正在读一个名为MissingItems.txt的文件,文件的内容是条形码,如下所示
[3000000.0, 5000000.0, 6000000.0, 7000000.0, 8000000.0, 1234567.0, 1234568.0, 9876543.0, 3000001.0, 5000001.0, 6000001.0, 7000001.0, 8000001.0, 1234561.0, 1234561.0, 9876541.0, 6000002.0, 7000002.0, 8000002.0, 1234562.0, 1234562.0, 9876542.0,9876543.0,9876544.0]我已经替换了方括号,然后将行拆分如下
OpenFile = open(r"G:MissingItems.txt","r")
for line in OpenFile:
remove = line.replace('[','')
remove1 = remove.replace(']','')
plates = remove1.split(",")
Plate1 = plates[0]
Plate2 = plates[1]
Plate3 = plates[2]
Plate4 = plates[3]
Plate5 = plates[4]
Plate6 = plates[5]
Plate7 = plates[6]
Plate8 = plates[7]
Plate9 = plates[8]
Plate10 = plates[9]
Plate11 = plates[10]
Plate12 = plates[11]
Plate13 = plates[12]
Plate14 = plates[13]
Plate15 = plates[14]
Plate16 = plates[15]
Plate17 = plates[16]
Plate18 = plates[17]
Plate19 = plates[18]
Plate20 = plates[19]
Plate21 = plates[20]
Plate22 = plates[21]
Plate23 = plates[22]
Plate24 = plates[23]是否有办法将.0从条形码中删除,在拆分前更可取?所以我会得到“3000000”,而不是“3000000.0”。我试过使用替换,但我不知道如何让它识别出它们在条形码的末尾。
发布于 2019-11-19 13:10:15
这是一种使用ast.literal_eval和int的方法。
Ex:
import ast
with open(r"G:MissingItems.txt","r") as infile:
for line in infile:
plates = [int(i) for i in ast.literal_eval(line.strip())]
print(plates)
# --> [3000000, 5000000, 6000000, 7000000, 8000000, 1234567, 1234568, 9876543, 3000001, 5000001, 6000001, 7000001, 8000001, 1234561, 1234561, 9876541, 6000002, 7000002, 8000002, 1234562, 1234562, 9876542, 9876543, 9876544]发布于 2019-11-19 13:15:07
您的文件似乎有JSON格式的行,因此可以使用JSON解析器:
import json
with open(r"G:MissingItems.txt","r") as openfile:
for line in openfile:
plate = json.loads(line)
print(plate)这使得plate成为一个数字列表(而不是字符串),因此3000.0和3000之间的差异消失了(因为它们是同一个数字的表示)。只有当您需要以十进制表示形式输出它们时,您才会担心要输出的小数。
其次,为plate1 plate2创建单独的变量是错误的做法,在这种情况下,您应该使用一个列表,并使用plate[0]、plate[1]、.
https://stackoverflow.com/questions/58934851
复制相似问题