2017-03-16 103 views
0

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

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

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

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) 

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

with open("CombinedList.txt", "w") as f: 

    for line in New_list: 
     f.write(line + "\n") 
    print('File Successfully written.') 

文件成功写入。

+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

注意:您需要从'f.write'调用中删除'+'\ n“',或者您只需可靠地双行换行。 :-) – ShadowRanger

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