如何根据来自两个不同文本文件的相同行打印值

时间:2019-05-04 16:25:18

标签: python-3.x

我希望用户输入一个特定的产品名称(保存在一个文件中),因此我想打印出该产品的价格(保存在另一个文件中),但不能这样做。

我刚刚开始编程,所以它对我来说是新的。

def find_in_file(f) :
    myfile = open("file1.txt")
    products =  myfile.read()
    products = products.splitlines()
    if f in products:
        return "Product is in list"
    else:
        return "Product is not in list"

def printing_in_file(p) : 
    myprice = open("file2.txt")
    price =  myprice.read()
    price = price.splitlines()
        return price

if code in sec_code.values():
    product = input("Enter product name:   ")
    print(printing_in_file(p))

我期望价格作为输出,但是我得到的未定义名称'p'

1 个答案:

答案 0 :(得分:0)

以下答案有效,但由于您没有提供输入文件的样本,因此此答案尚不完整。

您提供的代码没有'p'变量,因此我将其替换为变量 product 。我为函数 find_product (名为 find_in_file )中的返回值创建了 bool 值。如果输入的产品名称完全匹配(这将产生问题),则返回布尔值True。接下来,代码将调用产品名称的函数 find_product_price (名为 printing_in_file )。我必须创建包含产品名称和价格的文件,因为您没有提供示例文件作为问题的一部分。

此代码有效,但有局限性,因为我不知道您的输入文件或sec_code值的确切格式。有了更多信息,可以改进此代码,或者用一些新的代码替换掉更好的代码。

祝您编码顺利。

def find_product(product_name) :
  inventory_file = open('tmpFile.txt', 'r', encoding='utf-8')
  products =  inventory_file.read()
  products = products.splitlines()
  if product_name in products:
     return True
  else:
     return False

def find_product_price(product_name) :
  product_prices =  open('tmpFile01.txt', 'r', encoding='utf-8')
  prices =  product_prices.read()
  price = prices.splitlines()
  if product_name in price:
     return price

product = input("Enter product name: ")
product_search = find_product(product)
if product_search == True:
  print ('The product is available.')
  print(find_product_price(product))
  # outputs 
  ['cisco router $350']

elif product_search == False:
  print (f'{product} are not available for purchase.')