【问题标题】:Writing List To Text File [duplicate]将列表写入文本文件[重复]
【发布时间】:2013-09-19 14:32:56
【问题描述】:

我的代码到此结束:

duplicates = [files for files in file_dict.values() if len(files) > 1]

dupString = str(duplicates)

text_file.write("\n\n\nDuplicates Files: \n\n" + (dupString))

txt文件中的输出为:

[['/Users/simon/Desktop/aF/file1.py', '/Users/simon/Desktop/aF/hidden/file2.py', '/Users/simon/Desktop/aF/hidden/file3.py']]

我希望输出是:

/Users/simon/Desktop/aF/file1.py
/Users/simon/Desktop/aF/hidden/file2.py
/Users/simon/Desktop/aF/hidden/file3.py

我怎样才能做到这一点?我尝试使用 ' '.join(dupString) 和 '\n'.join(dupString) 但它只是让字符串值有空格或换行,这不是我想要的。

【问题讨论】:

  • 要引号吗?
  • 没有 Inbar,我不需要引号,我会编辑我的帖子。

标签: python list file-io


【解决方案1】:

好的,我的理解是:

duplicates = [files for files in file_dict.values() if len(files) > 1]

返回文件列表的列表。你的例子是这样的:

[['/Users/simon/Desktop/aF/file1.py', '/Users/simon/Desktop/aF/hidden/file2.py', '/Users/simon/Desktop/aF/hidden/file3.py']]

在这种情况下,您需要首先将其更改为仅生成字符串列表,您可以使用 itertools.chain.from_iterable 进行此操作

from itertools import chain
duplicates = chain.from_iterable([files for files in file_dict.values() if len(files) > 1])

那么就写这么多吧:

text_file.write("\n\n\nDuplicates Files: \n\n%s" % '\n'.join(duplicates)) 

【讨论】:

  • 就是这样。完美的。谢谢因巴尔。我将对 itertools 链模块进行一些阅读。
  • 如果你觉得我的回答对你有帮助,你可以Accept my Answer
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-25
  • 2014-03-21
  • 2018-02-02
  • 1970-01-01
  • 2017-11-06
  • 1970-01-01
  • 2017-09-27
相关资源
最近更新 更多