【问题标题】:How can I save the content of all txt.files out of a folder and store them in a list?如何将所有 txt.files 的内容保存在一个文件夹中并将它们存储在一个列表中?
【发布时间】:2020-11-01 11:39:42
【问题描述】:

我需要你的帮助,拜托! 我不是程序员,但我的论文需要这些东西。

我的问题是:我有很多 .txt 文档都保存在一个文件夹中:

folder_path = "path/to/folder"
listOfFiles = os.listdir(folder_path)
data = glob.glob(os.path.join(folder_path, '*.txt'))
allLines = []

我已经将我的文件名存储在一个列表中,并将文件夹路径与每个文件的路径连接起来。并创建了一个空列表,最后应该保存文件的内容。

我想做什么:

for files in data:
        with codecs.open(files, 'r','utf-8-sig') as f: 
           text_ = f.read()
           allLines.append(text_.strip())
           print (text_) 
           print (len(text_))
           continue

从数据文件列表中打开每个文件,读取它并将内容保存在新列表中。当我尝试使用下面的代码执行此操作时,它仅将第一个文件的内容保存在文件夹中。我知道问题是,我只能定义一次名称“text_”,这就是它不起作用的原因。但是我到处阅读了很多文章,找不到解决我的问题的方法。

希望有人可以帮助我。非常感谢!

编辑:我需要这个来自 R 的 Python 语言代码:

folder<-"E:/Amadeus für MA/probe"
file_list<- list.files(path=folder, pattern="*.txt")
for (i in 1:length(file_list)){
  assign(file_list[i],
         read.table(paste(folder,file_list[i], sep='/'),fill = TRUE,sep = "#",fileEncoding = "UTF-8")
  )}

【问题讨论】:

  • @JuliaLeschik--你确定 allLines 包含不正确的结果吗?
  • 嘿 :) 是的,它只显示了我目录中第一个 txt 文件的内容。列表中的 3 次。我可能知道问题出在哪里:如果我写“for files in data”,python 只会使用我的数据列表中的第一个字符串,但我不知道为什么。感谢您的帮助:)
  • 你是对的。该代码运行完美。我的文件夹中只有 3 倍相同的数据:D

标签: python file directory file-read


【解决方案1】:

只需更改此行:

data = glob.glob(os.path.join(folder_path, '*.txt'))

到这里

data = [i for i in listOfFiles if i[-3:]=='txt']

你的其他代码看起来没问题

【讨论】:

  • 您好,谢谢您的回答。但是,如果我按照您的设想进行更改,则 python 无法找到路径: FileNotFoundError: [Errno 2] No such file or directory: 'DE2010000230-EA-2013_LB.txt',因为首先我需要“匹配”文件夹路径和文件路径。问题出在命令“for files in data:”中。但我不知道,该怎么做。
猜你喜欢
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
  • 2022-12-04
  • 2020-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多