如何从导出的python列表中删除逗号,引号和括号?

时间:2014-05-29 04:29:28

标签: python python-3.x export

你们对我最后一个新手问题非常有帮助所以我想我会再拍一次。现在,我的Python 3代码从CSV文件中获取数据,将数据存储为列表,创建该数据的排列,然后将其导出回列格式的新csv文件中。不幸的是,导出列表的格式并不是我所需要的最佳格式。我的问题是:如何从python中导出的列表中删除逗号,括号和括号?

现在看起来如何:

('你好','世界','怎么')

('你好','世界','是')

('你好','怎么','世界')

我希望看起来如何:

Hello World How

Hello World Are

你好世界

以下是我使用的代码,是否有人有任何建议或建议?我正在努力学习,所以任何额外的见解都会非常感激!

import csv
import itertools
with open('/users/Desktop/pythondata.csv', 'r') as f:
   reader = csv.reader(f)
   J = []
   for row in reader:
      J.extend(row)
C = list(itertools.permutations(J, 3))
with open('THISISATEST.csv','w')as f:
   writer=csv.writer(f,lineterminator='\n')
   for val in C:
       writer.writerow([val])`

P.S。 - 如果格式不正确,请原谅我,我是新手!

4 个答案:

答案 0 :(得分:3)

您的问题:

我建议您只使用join方法获取您要查找的单个字符串。你可以尝试:

with open('test.csv', 'w') as a_file:
    for result in C:
        result = ' '.join(result)
        a_file.write(result + '\n')

基本上,调用字符串join(单个空格)的' '方法将获取其参数中的每个项目(来自排列的单个结果)并将它们一起添加到单个字符串中由第一个字符串(单个空格)分隔。 This site给出了一个简单的说明性示例。

使用语法join调用'[separator]'.join([list of items to join])方法,因此如果您只想将所有内容混合成一个没有空格的字符串,则可以在空字符串上调用它:{{1} }。

由于您不需要逗号分隔文件(CSV),因此只需使用''.join([my list])方法即可简化操作。如果您在此代码中使用CSV编写器,则每个字母之间都会显示逗号。

答案 1 :(得分:2)

我不知道您是否了解正则表达式,但使用python的“re”模块应该可以为您提供所需内容:

    import re
    strs = "('Hello', 'World', 'How')"

    #creates list of strings that match the regular expression
    words = re.findall(r"\'([A-Za-z]+)\'", strs)

    #joins all of the elements of the word array into a string separated by a space
    outputString = " ".join(words)

    #output is "Hello World How"
    print outputString

答案 2 :(得分:1)

因为你有元组,所以有一种更简单的方法。您不需要csv来导出以空格分隔的文件。

import csv
import itertools
with open('pythondata.csv', 'r') as f:
    reader = csv.reader(f)
    J = []
    for row in reader:
        J.extend(row)
C = itertools.permutations(J, 3)
with open('THISISATEST.txt','w') as f:
    f.write('\n'.join(' '.join(y for y in x) for x in C))

答案 3 :(得分:0)

如果还有人在尝试这个时仍在搜索,(python 3.x)。 我的目标是在单独的行上列出所有可能的9位数字排列。

string = ''.join(str(char) for char in line)行是获胜者

import sys, itertools

f = open('path to file', 'w') #I was using a .txt file

permutations = (list(itertools.permutations([1,2,3,4,5,6,7,8,9], 9)))

for line in permutations:
    string = ''.join(str(char) for char in line)
    f.write(string + '\n')            

f.close()