Python 3.x 使用Python将数据以特定格式写入文件

Python 3.x 使用Python将数据以特定格式写入文件,python-3.x,Python 3.x,我正在尝试以以下格式从函数返回写入数字数据: [1,2,3,4,5][10,11] [6,7,8,9,10][13,14] ... 1,2,3,4,5[::tab::]10,11 6,7,8,9,10[::tab::]13,14 ... 问题是我希望文本文件的格式为: [1,2,3,4,5][10,11] [6,7,8,9,10][13,14] ... 1,2,3,4,5[::tab::]10,11 6,7,8,9,10[::tab::]13,14 ... 目前我正在使用 with op

我正在尝试以以下格式从函数返回写入数字数据:

[1,2,3,4,5][10,11]
[6,7,8,9,10][13,14]
...
1,2,3,4,5[::tab::]10,11
6,7,8,9,10[::tab::]13,14
...
问题是我希望文本文件的格式为:

[1,2,3,4,5][10,11]
[6,7,8,9,10][13,14]
...
1,2,3,4,5[::tab::]10,11
6,7,8,9,10[::tab::]13,14
...
目前我正在使用

with open(outfilename,'a') as outfile:
    outfile.writelines("%s%s\n"%(major,minor))

我非常感谢你的帮助。我仍然对列表、对文本文件的读写以及实现数据的特定格式感到困惑。我总是以不需要的[]或括号结束。

您可以简单地使用列表中的元素编写字符串,将每个元素与
或所需的分隔符连接起来;然后,在列表之间使用
\t
打印列表

with open(outfilename, 'at') as outfile:

    major = ",".join(str(i) for i in major)
    minor = ",".join(str(i) for i in minor)

    outfile.writelines("%s\t%s\n" % (major, minor))
下面这句话背后的魔力其实很简单:

major = ",".join(str(i) for i in major)
Python提供了一个名为list comprehension的特性,它允许您使用非常清晰和直接的语法对列表的元素执行操作

例如,如果您有一个列表
l=[1,2,3,4,5]
,您可以运行该列表,将元素从整数转换为字符串,调用方法
str()

执行此操作时,每次将创建每个结果字符串,并且此语句中有一个生成器:

(str(element) for element in l)
由于方法
join
通过迭代元素列表或从生成器接收这些元素来工作,因此您可以:

delimiter = ","
delimiter.join(str(element) for element in l)

希望它能澄清上面的操作。

您可以简单地使用列表中的元素编写字符串,用
或所需的分隔符连接每个元素;然后,在列表之间使用
\t
打印列表

with open(outfilename, 'at') as outfile:

    major = ",".join(str(i) for i in major)
    minor = ",".join(str(i) for i in minor)

    outfile.writelines("%s\t%s\n" % (major, minor))
下面这句话背后的魔力其实很简单:

major = ",".join(str(i) for i in major)
Python提供了一个名为list comprehension的特性,它允许您使用非常清晰和直接的语法对列表的元素执行操作

例如,如果您有一个列表
l=[1,2,3,4,5]
,您可以运行该列表,将元素从整数转换为字符串,调用方法
str()

执行此操作时,每次将创建每个结果字符串,并且此语句中有一个生成器:

(str(element) for element in l)
由于方法
join
通过迭代元素列表或从生成器接收这些元素来工作,因此您可以:

delimiter = ","
delimiter.join(str(element) for element in l)

希望它能澄清上面的操作。

如此简单,但我却很难理解其中的逻辑。非常感谢。你能推荐一些我可以学习这些逻辑步骤的书或文本吗。我真的有这个问题。谢谢你的帮助。这个解决方案对你有用吗?如果是,接受答案;我将对
“,”添加一个解释。join(str(I)对于我来说,主要是
步骤,但我能告诉你的更多的是使用交互式python shellipython,在遇到问题时查阅python文档:或者。谢谢。关于读取格式为1,2,3,4,5 tab 1,2的文件的相同问题。我想用tw返回组中的最高值o个数字。使用拆分('\t')[1],我得到第二个组。如果我使用[1][0],我得到最低的数字(数据已排序),但是如果我使用[1][1],我会得到一个错误,如果我使用[1][1],可以使用一位数,但返回两位数的第二位数,即10返回0,11返回1。我想我仍然不知道如何“目标”切片properly@user1478335你在这里写的是一个文件,而不是阅读。我想最好创建一个适当的问题,并描述你正在尝试的内容要做的事情,以及你到目前为止所做的尝试,然后是你得到的错误输出。如此简单,但我在逻辑上有这么大的困难。谢谢你。你能推荐任何我可以学习这些逻辑步骤的书籍或文本吗。我真的有这个问题。谢谢你的帮助。这个解决方案对你有效吗?如果是的话,请接受我的建议回答;我将在
“,”上添加一个解释。join(str(I)对于我来说,主要是
步骤,但我能告诉你的更多的是使用交互式python shellipython,在遇到问题时查阅python文档:或者。谢谢。关于读取格式为1,2,3,4,5 tab 1,2的文件的相同问题。我想用tw返回组中的最高值o个数字。使用拆分('\t')[1],我得到第二个组。如果我使用[1][0],我得到最低的数字(数据已排序),但是如果我使用[1][1],我会得到一个错误,如果我使用[1][1],可以使用一位数,但返回两位数的第二位数,即10返回0,11返回1。我想我仍然不知道如何“目标”切片properly@user1478335你在这里写的是一个文件,而不是阅读。我想最好创建一个适当的问题,并描述你正在尝试的内容要做的事情,以及您到目前为止所做的尝试,然后是您得到的错误输出。