使用python将文件列表保存到文本文件中

Posted

技术标签:

【中文标题】使用python将文件列表保存到文本文件中【英文标题】:Save file list into text file using python 【发布时间】:2014-07-26 17:27:01 【问题描述】:

我想获取不带扩展名/后缀的文件名,并使用特定字符进行拆分。

目录中有很多jpg文件。

例如,

A_list(B)_001.jpg

Stack_overflow_question_0.3.jpg

...以及某个目录中的数百个文件

我想要的是只获取不带扩展名的文件名,例如:

A_list(B), 001

Stack_overflow_question,0.3

但使用以下代码,

import os

path = 'D:\HeadFirstPython\chapter3'
os.chdir(path)

data = open('temp.txt', 'w')

for file in os.listdir(path):
    if file.endswith('.jpg'):
        file = file.split('_')
        print(file, file=data)

data.close()

我得到了如下结果。

['A', 'list(B)', '001.jpg']

['堆栈', '溢出', '问题', '0.3.jpg']

这可以用更少的代码来完成吗?

感谢和亲切的问候, 蒂姆

【问题讨论】:

这不是很多代码...... 您想要列表列表还是单个列表? 我需要单独的列表 :) 【参考方案1】:
import glob
import os

path = 'D:\HeadFirstPython\chapter3'
os.chdir(path)
with open("temp.txt","w") as f: # with automatically closes your files
   my_l = [x.replace(".jpg","").rsplit("_",1) for x in glob.glob("*.jpg")] # list of lists



with open("temp.txt", "w") as f:
    for x in glob.glob("*.jpg"):
        print x.replace(".jpg", "").rsplit("_", 1) # each list 

输出将如下所示:

s = "Stack_overflow_question_0.3.jpg"

print s.replace(".jpg", "").rsplit("_", 1)
['Stack_overflow_question', '0.3']

在没有","的情况下写入txt文件:

with open("temp.txt", "w") as f:  # with automatically closes your files
    my_l = [x.replace(".jpg", "").rsplit("_", 1) for x in glob.glob("*.jpg")]
    for l in my_l:
        f.write(str(l).replace(",", ""))

使用"*.jpg" 将搜索以jpg 结尾的任何文件。 rsplit("_",1) 将在最右侧拆分 _ 并使用 1 作为 maxsplit 只会拆分一次。我们只需将扩展名替换为str.replace

【讨论】:

我可以问你一些事情来将结果保存到文本文件中吗?当我保存它时,它的形式是“列表”,所以它包含 [ ' , ] 像这 4 个字符。我怎样才能删除这些? 以后要对txt文件的内容做什么? 我使用了一个用 LISP 语言开发的外部应用程序。我想根据文件名用python制作一个脚本并将其发送到外部应用程序。 @user3880099,答案的最后一部分应该做你想做的。【参考方案2】:
if file.endswith('.jpg'):
        file = file.rsplit('_',1)
        print file[0],
        print file[1].rsplit('.',1)[0]
        print(file, file=data)

【讨论】:

以上是关于使用python将文件列表保存到文本文件中的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Python 脚本的部分输出发送到文本文件?

将 R 列表保存到文本文件中

将python中的列表保存为分号分隔的文本文件

将 Windows 窗体列表框保存到文本文件 C#

Spark 使用 Python:将 RDD 输出保存到文本文件中

将使用 Python 从 Twitter 检索到的数据保存到文本文件中?