我是python菜鸟,想象我有一个包含的.txt文件
123456789 1234 apple\wasdsa\sgfgf\sgf\rgfd.csv
124555669 6547 mango\sdf\hjt\sthsdth\eth.txt
564984565 58475 ksfjk\hjkf\tkohj\fdgs.opp
和列表继续。但是我需要它用标题和序列号来像这样格式化它,序列号将根据行数不断增加:
Sr.no. MD5 Size Path
1 123456789 1234 apple\wasdsa\sgfgf\sgf\rgfd.csv
2 124555669 6547 mango\sdf\hjt\sthsdth\eth.txt
3 564984565 58475 ksfjk\hjkf\tkohj\fdgs.opp
我无法在相同的.txt文件上覆盖它,也无法生成序列号。请帮助我。
您可以使用
data = """
123456789 1234 test123
124555669 6547 test456
564984565 58475 test789
"""
header = "Sr.no. MD5 Size Path\n"
output = header + "\n".join(
"{}\t{}".format(line_number, line)
for line_number, line in enumerate(
(item for item in data.split("\n") if item), 1))
print(output)
哪个会屈服
Sr.no. MD5 Size Path
1 123456789 1234 test123
2 124555669 6547 test456
3 564984565 58475 test789
问题是这些转义字符是否确实在实际字符串中?
[另一种方法(天真):sample.txt =文字名称
限制:标题和行({0:5} {1:12} {2:7}
)表示限制为5个空格,依此类推。可以轻松修改以满足您的需求。
with open('sample.txt', "r") as f:
data = f.readlines()
with open('sample.txt', "w") as f:
header='{0:5} {1:12} {2:7} {3}\n'.format('Sr.no.','MD5', 'Size', 'Path')
f.write(header)
for iter, each_line in enumerate(data):
line = '{0:>5} {1}'.format(iter+1, each_line)
f.writelines(line)
输出:
Sr.no. MD5 Size Path
1 123456789 1234 apple\wasdsa\sgfgf\sgf\rgfd.csv
2 124555669 6547 mango\sdf\hjt\sthsdth\eth.txt
3 564984565 58475 ksfjk\hjkf\tkohj\fdgs.opp
或使用:
line = '{0:>5} {1}'.format(iter+1, each_line)
Sr.no. MD5 Size Path
1 123456789 1234 apple\wasdsa\sgfgf\sgf\rgfd.csv
2 124555669 6547 mango\sdf\hjt\sthsdth\eth.txt
3 564984565 58475 ksfjk\hjkf\tkohj\fdgs.opp