首页 > 解决方案 > 如何为多个输入文件运行相同的python代码

问题描述

我有两个包含相同数据(但值不同)的输出文件。我正在使用以下 Python 代码来读取它们并返回我想要的数据/值:

upper = input("Enter file name (upper): ")
lower = input("Enter file name (lower): ")

fhr = open(upper)
for line in fhr:
    word = line.rstrip().split()
    if len(word) > 1 and word[1] == '1:47':
        try:
            sabs = word[2]
        except:
            continue
        tot_upper = float(sabs)
        print('Total upper:', tot_upper)
fhr.close()

fhr = open(lower)
for line in fhr:
    word = line.rstrip().split()
    if len(word) > 1 and word[1] == '1:47':
        try:
            sabs = word[2]
        except:
            continue
        tot_lower = float(sabs)
        print('Total lower:', tot_lower)
fhr.close()

这给了我输出:

Total upper: x
Total lower: y

有没有办法可以简化代码,例如打开第一个文件,运行代码,然后循环回到开头,打开第二个文件并运行相同的代码?像这样的东西:

upper = input("Enter file name (upper): ")
lower = input("Enter file name (lower): ")

file = [upper, lower]

for inp in file:
    fhr = open(file)
    for line in fhr:
        word = line.rstrip().split()
        if len(word) > 1 and word[1] == '1:47':
            try:
                sabs = word[2]
            except:
                continue
            if inp == upper:
                tot_upper = float(sabs)
                print('Total upper:', tot_upper)
            elif inp == lower:
                tot_lower = float(sabs)
                print('Total lower:', tot_lower
    fhr.close()

我仍然想要相同的输出:

Total upper: x
Total lower: y

标签: pythonloopsinput

解决方案


你可以这样做:

for label in 'upper', 'lower':
   # Ask for filename, using the label.
   # Process the file.
   # Print the result, using the label.

推荐阅读