如何调整代码以仅删除打印所需的值

时间:2018-02-27 17:29:33

标签: python python-3.x

我目前的代码:

def write_from_dict(users_folder):
    for key, value in value_dict.items():  # iterate over the dict
        file_path = os.path.join(users_folder, key + '.txt')
        with open(file_path, 'w') as f:       # open the file for writing
            for line in value:                # iterate over the lists

                f.write('{}\n'.format(line))

我目前的输出:

['4802', '156', '4770', '141']
['4895', '157', '4810', '141']
['4923', '156', '4903', '145']

我想要的输出:

4802,156,4770,141
4895,157,4810,141
4923,156,4903,145

所以基本上我想要的空间''和[]删除。

2 个答案:

答案 0 :(得分:1)

替换

f.write('{}\n'.format(line))

使用

f.write('{}\n'.format(",".join(line)))

答案 1 :(得分:1)

目前,linelist的{​​{1}},我们需要打印一个字符串,这是将每个整数(作为字符串)连接到逗号的结果。

这可以通过ints方法轻松完成,该方法接受一个可迭代的字符串,然后将它们与一个分隔符连接在一起 - 这里将是一个逗号(str.join)。

所以,','行应该是这样的:

f.write

或者如果f.write('{}\n'.format(''.join(str(i) for i in line))) 的元素已经是字符串(从当前代码中无法分辨),那么您可以使用更简单的:

line