【问题标题】:How to write a list in a separate text file in python? [closed]如何在python的单独文本文件中编写列表? [关闭]
【发布时间】:2021-07-22 08:18:43
【问题描述】:

我正在尝试从我的计算机目录中的多个文本文件中解析一些数据。

我想将每个文件中的特定信息复制到单独的文本文件中。我犯了一些错误,但不明白是什么。请看下面的代码。非常感谢您的帮助。

texts = []
for file in OK_files:
    with open(path + '\\' + file) as f:
        # this t varialble store your 2nd line in each cycle
        t = f.read().split('\n') [1]
        # this file append each file into texts list
        texts.append(t)

# to print each important line

with open("C:/Users/rafi.nazmul/Documents/Output","w+") as file:
    for text in texts:
        file.write(texts)

我遇到了错误:

TypeError: write() argument must be str, not list

更新

错误已从 cmets 修复,但我需要了解更多信息:

  1. 代码现在只从每个文件中读取一行,第一个索引。我怎样才能 从每个文件中读取多行?
  2. 如何从每一行而不是整行中选择特定字符?

【问题讨论】:

  • 请在此处粘贴代码
  • 你的意思是整个代码?但是这里超过了字数限制!

标签: python list parsing text-files writing


【解决方案1】:

write() 函数中,您将传递整个 lexts 列表。只需将其更改为:

for text in texts:
    with open(file_path,'a') as file:
        file.write(text)

我们使用 'a' 是因为我们想要打开文件并附加到它,而不是覆盖它。另外,请检查texts 中是否有任何内容。请注意,file_path 也包含带扩展名的文件名。

【讨论】:

  • 您好,谢谢!这消除了错误。但是列表中的数据仍然没有写入目标文本文件,它是空的!
  • @nazmulanamrafi,我已经更新了答案,请重新检查
  • 请分享您的文本打印内容。只需通过with open(file_path,'a') as file: file.write(randomText) 写入一个虚拟文件,看看您的文件写入是否正常。
  • 现在实际上我只有第一个文件的信息写入目标文件,而不是目录的其他文件。 for循环中是否有错误? :|
  • 检查文本是否包含所有文件中所需的行,然后我们将再次回到写入。让我们调试。让我知道文本是否包含来自所有不同文件的行。
猜你喜欢
  • 1970-01-01
  • 2021-08-19
  • 1970-01-01
  • 1970-01-01
  • 2020-04-20
  • 2015-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多