私信  •  关注

abdeali004

abdeali004 最近创建的主题
abdeali004 最近回复了
3 年前
回复了 abdeali004 创建的主题 » 如何在python中在同一行上打印多个命令行参数的内容?

如果每个文件中的行数相同,请使用此代码。然而,一旦Python退出 带着 块时,文件将自动关闭。所以 不要在“with”块中包含close函数。

这个 阅读线() 方法将包含文件中每一行的列表作为列表项返回。结果变量将在每个索引处存储每个文件的列表。 例如[file1.readlines(),file2.readlines(),file3.readlines()…]

其中,类型(结果[0])为列表。 然后根据这一点采取行动。

from sys import argv, exit

if len(argv) < 2:
    print("Missing command-line argument")
    exit(1)

argumentList = argv[1:]
result = []
for arg in argumentList:
    with open(arg, "r") as f:
        result.append(f.readlines())

total_lines = len(result[0])
total_items = len(result)

# finding maximum space for each file.
maximum_list = []
for item in range(total_items):
    maximum = 0
    for data in range(total_lines):
        result[item][data] = result[item][data].strip("\n")
        length = len(result[item][data])
        if length > maximum:
            maximum = length
    maximum_list.append(maximum)


for i in range(total_lines):
    count = 0
    while count < total_items:
        data = result[count][i]
        length_difference = maximum_list[count] - len(data) # For printing alignment
        print(data + (" " * length_difference), end=" ")
        count += 1
    print()