我有一个包含用户登录数据的纯文本文件:

dtrapani  HCPD-EPD-3687  Mon  05/13/2013    9:47:01.72
dlibby  HCPD-COS-4611  Mon  05/13/2013    9:49:34.55
lmurdoch  HCPD-SDDEB-3736  Mon  05/13/2013    9:50:38.48
lpatrick  HCPD-WIN7-015  Mon  05/13/2013    9:57:44.57
mlay  HCPD-WAR-3744  Mon  05/13/2013  10:00:07.94
eyoung  HCPD-NLCC-0645  Mon  05/13/2013  10:03:01.83

我试图在左对齐和右对齐的列中打印数据:

dtrapani  HCPD-EPD-3687    Mon  05/13/2013    9:47:01.72
dlibby    HCPD-COS-4611    Mon  05/13/2013    9:49:34.55
lmurdoch  HCPD-SDDEB-3736  Mon  05/13/2013    9:50:38.48
lpatrick  HCPD-WIN7-015    Mon  05/13/2013    9:57:44.57
mlay      HCPD-WAR-3744    Mon  05/13/2013   10:00:07.94
eyoung    HCPD-NLCC-0645   Mon  05/13/2013   10:03:01.83

我该怎么做?

这是我目前掌握的代码:

with open(r'C:\path\to\logons.txt', 'r') as f:
    for line in f:
        data = line.strip()
        print(data)

推荐答案

我会 Select 这个新的(er)打印格式化程序(假设您的字段是一致的).print/format语句非常容易使用,可以在here中找到.由于您的数据可以被视为一个列表,因此您可以进行一次调用来格式化并提供正确的格式化程序数据,这样您就可以得到输出.与ljust或rjust相比,它具有更细粒度的控制,但缺点是您需要知道输入的数据是一致的.

with open(r'C:\path\to\logons.txt', 'r') as f:
    for line in f:
        data = line.split()    # Splits on whitespace
        print '{0[0]:<15}{0[1]:<15}{0[2]:<5}{0[3]:<15}{0[4]:>15}'.format(data)

Python-3.x相关问答推荐

如何翻转以列形式给出的日期间隔并提取多个重叠时段内每小时的音量?

AddMultplicationEquality() 用于多个变量

tkinter treeview 如何在获取所选项目时将设置的对象作为对象返回

比较和排序 DataFrame 两列中的值并在 python 中的同一行中排序

提取图像中的背景并保存

以不规则频率识别数据框日期时间列上缺失的日期,并用关联值填充它们

如何在python 3.10中将列表项(字符串类型)转换为模块函数

Python 3 `str.__getitem__` 的计算复杂度是多少?

根据另一列值对多个数据框列进行分组

有没有更好的方法来判断一个数字是否是两个数字的范围

将字符串表示与使用整数值的枚举相关联?

如何从左到右解包元组?

在没有时间的python中创建日期

0 是 0 == 0(#evaluates 为真?)

Python 3 - Zip 是 pandas 数据框中的迭代器

如何从 Python 3 导入 FileNotFoundError?

TypeError:只有整数标量数组可以转换为标量索引

为什么变量 = 对象不像变量 = 数字那样工作

将 Python SIGINT 重置为默认信号处理程序

如何将发音相似的词放在一起