我有一个有三行的文本文件。 我想把这三行看成是 L1,L2和L3并计算字符数 L1,L2和L3为n1,n2和n3。我试过了 如下:
f=open(sys.argv[1],'r')
L1=f.readline()
L2=f.readline()
L3=f.readline()
if L1[-1]=='\n': L1=L1[:len(L1)-1]
if L2[-1]=='\n': L2=L2[:len(L2)-1]
if L3[-1]=='\n': L3=L3[:len(L3)-1]
n1=len(L1); n2=len(L2); n3=len(L3)
print L1, n1, L2, n2, L3, n3
上面的脚本运行正常。但我想知道是否有更好/更容易 获得L1,L2和L3的方法。提前谢谢!
答案 0 :(得分:1)
你可以:
with
语句获取其他答案所建议的较新版本的Python。答案 1 :(得分:1)
这个怎么样:
with open(sys.argv[1]) as f:
L1, L2, L3 = (line.rstrip() for line in f.readlines()[:3])
但你真的应该使用清单......
答案 2 :(得分:0)
我认为最好的方法是尝试将它们放在一个数组中。我不使用python,但这就是c ++中的错误。
答案 3 :(得分:0)
确定..
lines = []
with open(sys.argv[1], "r") as file:
for line in file.readlines():
if line[-1] == "\n":
line = line[:-1]
lines.append(line)
这样,文件中有多少行并不重要。你的程序仍然会运行到最后
答案 4 :(得分:0)
我在stackoverflow搜索并找到了更简单的代码。 它将内容保存到数组中:
with open(fname) as f:
content = f.readlines()
如果要剥离\ n:
with open(fname) as f:
content = [line.strip() for line in f]