我正在尝试一个商店计划,需要能够打印出收据,其中包含用户想要的详细信息,然后打印总费用。
假设它是有效的条形码类型,程序将在带有产品,代码和价格列表的csv文件中搜索它。看起来像这样。 (在excel中打开时,每条记录都在不同的列中)
这就是我搜索csv的方式
def checkfile(code):
found = None
with open('products.csv', newline='') as f:
reader = csv.reader(f, delimiter='\t')
for line in f:
data = line.split(",")
if code == data[0]:
print("We found your product ",data)
return data
data = code, "is not found. Please try again"
print (data)
所以,产品看起来像这样 34512340Plain Brackets0.55 例如,数量为5
这两个都写入另一个存储收据的文件中。 我需要一种方法来将数量乘以价格(在这种情况下,5 x 0.55)
我需要以某种方式从代码和产品标题中分割价格,但不确定如何......
任何想法?
答案 0 :(得分:0)
我认为这里有两个问题
1 - 您将文件传递给csv.reader
,但之后只使用f
代替
2 - 您正在使用\t
告诉csv.reader
该文件是由制表符分隔的,但稍后会用逗号分割。
def checkfile(code):
found = None # This seems redundant?
with open('products.csv', 'r') as f:
reader = csv.reader(f, delimiter=',')
for line in reader:
print(line) # To see what you're getting
if code == line[0]:
print("We found your product ", code)
return line
'''
EDIT: Outside of the question, but the below probably doesn't do what you expect
data = code, "is not found. Please try again"
print (data)
'''
# Use this instead
print(code, "is not found. Please try again")
从您的项目符号(由空格分隔),在现有的csv.reader中使用\t
,然后尝试基于逗号进行拆分,很难知道您需要什么。所以你可能还需要尝试这些来获得有用的东西:
reader = csv.reader(f, delimiter='\t')
reader = csv.reader(f, delimiter=' ')