避免将空格写入列表到文本文件

时间:2017-03-16 01:01:36

标签: algorithm python-3.x csv file-io whitespace

我正在尝试将列表的内容写入文本文件,其中列表中的每个项目都在新行上,中间没有任何空行。我的问题似乎是从循环到多个csv文件中抓取的项目创建大型列表并将它们组合到一个列表中的工件。也许我只需要以不同的方式组合列表来修复单个词之后的“\ n”而不是列表之间的那些......?

variant_dir

['A_test.csv','B_test.csv']

some_list = [] # list of csv files
for i in os.listdir('filepath_to_directory_with_csv_files'):
    some_list.append(i)
print (some_list)

[['This \ n','is \ n','A \ n','test'],['这\ n','是\ n','B \ n','test' ]

CombinedList = [] # list containing all the rows in each csv file
for InFileName in some_list: # for loop to capture data from all csv files
    InFile = open(InFileName, 'r')
    PathwayList.append(InFile.readlines())
    InFile.close()  

print (CombinedList)

['这个\ n','是\ n','A \ n','测试','这个\ n','是\ n','B \ n','测试']

New_list = [item for sublist in CombinedList for item in sublist]
print (New_list)

文件已成功编写。

2 个答案:

答案 0 :(得分:0)

为避免双线换行,您可以先删除任何' \ n'从文件中读取的每一行,然后添加' \ n'对所有人。

PathwayList.append([line.rstrip('\n')+'\n' for line in InFile])

输出:[['This\n', 'is\n', 'A\n', 'test\n'], ['This \n', 'is\n', 'B\n', 'test\n']]

答案 1 :(得分:0)

你可能(只是一个猜测,因为你的问题不是100%明确制定)想要的是:

CombinedList = [['This\n', 'is\n', 'A\n', 'test'], ['This \n', 'is\n', 'B\n', 'test']]
# New_list = ['This\n', 'is\n', 'A\n', 'test', 'This \n', 'is\n', 'B\n', 'test']
for item in CombinedList:
    line = ''
    for word in item:
        line += word.replace('\n', ' ') 
    f.write(line + "\n")
    # print(line)

写入(打印):

This is A test
This  is B test