在Python中保存一个txt文件,一些改进我的代码的技巧

时间:2012-11-30 16:34:48

标签: python performance coding-style

首先,抱歉这个简单的问题。我知道这些问题非常基本。我需要在Python 2.7中保存一个包含多行的txt文件。我需要提出一些建议来改进我的基本代码。

这是一个基本的例子

file_out = open("..//example//test.text", "w")

for p in range(10):
    ID = str(p)
    A = p*10
    B = p+10
    C = p-10
    D = p+p
    E = p*2
    file_out.write("s% %s %s %s s% s%" % (ID,A,B,C,D,E)+ "\n")
file_out.close()

我的问题是:

  • 我有这个错误信息,我找不到解决方法

    Traceback (most recent call last):
    File "<interactive input>", line 1, in <module>
      ValueError: incomplete format
    
  • 我要保存的元素(例如:ID,A,B,C,D,E)是几个(30个元素),并且 我用了很长的s%。有一种优雅的方式和紧凑的代码 这条线?

  • 我也想保存一个头(例如:ID,A,B,C,D,E)。什么是最好的方法 这样做?

4 个答案:

答案 0 :(得分:3)

  

ValueError:格式不完整

您将%s格式的一半写为s%。百分号首先出现。

  

我保存的元素(例如:ID,A,B,C,D,E)是几个(30个元素),我使用了一长串的s%。是否有一种优雅的方式和紧凑的代码这条线?。

' '.join(str(x) for x in [p, p*10, p+10, p-10, p+p, p*2])

答案 1 :(得分:1)

%首先,然后说明符。

%s

此外:

print >>file_out, ' '.join(...)

另外,csv

答案 2 :(得分:1)

你有一个错字

file_out.write("%s %s %s %s %s %s" % (ID,A,B,C,D,E)+ "\n")

   file_out.write("%s %s %s %s %s %s\n" % (ID,A,B,C,D,E))

file_out.write(" ".join(["%s" %i for i in [A, B, C, D, E]]))

答案 3 :(得分:1)

您有一些语法错误。检查格式化字符串。

file_out = open("..//example//test.text", "w")

for p in range(10):
    ID = str(p)
    A = p*10
    B = p+10
    C = p-10
    D = p+p
    E = p*2
    file_out.write("%s %s %s %s %s %s" % (ID,A,B,C,D,E) + "\n")
file_out.close()