我有
fruits = [ apple, pineapple, oranges, mango, banana ]
size = [small, medium, large]
我正在尝试为所有水果组合创建路径,其大小如下:
for fruit, size in itertools.product(fruits, sizes):
main-directory = sys.argv[1]
sizefilepath = os.path.join(maindirectory, fruit, "business", fruit_size.dot)
try:
sizefile = open(sizefilepath, "r")
except:
print("could not open" +sizefilepath)
sizefile.close()
estimatefilepath = os.path.join(maindirectory, "get", "estimate", "of", fruit_size.txt)
try:
estimatefile = open(estimatefilepath)
except:
print("could not open"+estimatefilepath)
estimatefilepath.close()
当我执行代码时,它会给出一个错误,即没有定义fruit_size。当我定义
fruit_size = [different comibinations like apple_small etc.]
它给出了一个错误,即没有属性作为字符串的.txt。
如何解决错误? 我剩下的代码也使用了sizefile和estimatefile。我该如何排序执行? 喜欢所有水果,我想逐个执行它。 目前,如果我尝试,我得到值错误:关闭文件上的I / O操作。
答案 0 :(得分:1)
如果你想要的sizefile文件名是 - <fruit>_<size>.dot
,例如 - apple_small.dot
,第二个文件名必须是<fruit>_<size>.txt
那么你使用的是错误的,python会假设fruit_size
是一个.dot
作为该对象内部变量的对象,不是这种情况,你想在这里使用字符串连接。
示例 -
for fruit, size in itertools.product(fruits, sizes):
maindirectory = sys.argv[1]
sizefilepath = os.path.join(maindirectory, fruit, "business", fruit + "_" + size + ".dot")
try:
sizefile = open(sizefilepath, "r")
except:
print("could not open" +sizefilepath)
sizefile.close()
estimatefilepath = os.path.join(main-directory, "get", "estimate", "of", fruit + "_" + size + ".txt")
try:
estimatefile = open(estimatefilepath)
except:
print("could not open"+estimatefilepath)
estimatefilepath.close()