0

首先,很抱歉这个简单的问题。我知道这些问题非常基础。我需要在 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

4 回答 4

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])
于 2012-11-30T16:36:45.810 回答
1

%首先,然后是说明符。

%s

还:

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

另外,csv.

于 2012-11-30T16:37:13.990 回答
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]]))
于 2012-11-30T16:38:34.533 回答
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()
于 2012-11-30T16:43:07.537 回答