我在学校做作业,我被要求做以下工作: 编写一个名为get\u paths的函数,并将其存储在Python模块utils.py中 函数获取路径: 获取一个名为input\u folder的位置参数 该函数将所有指向.txt文件的路径存储在列表的input\文件夹中 函数返回一个字符串列表,即每个字符串都是一个文件路径
我试过glob,但那只得到了我名字的一部分,我用了listdir,得到了我想要的,但我不知道该返回什么
def get_path(input_folder):
for file in os.listdir(input_folder):
if file.endswith(".txt"):
print([os.path.join(input_folder, file)])
['C:\\Users\\Maverick.DESKTOP-N0E7K8Q\\Desktop\\python
notes\\Data\\books\\AnnaKarenina.txt']
['C:\\Users\\Maverick.DESKTOP-N0E7K8Q\\Desktop\\python
notes\\Data\\books\\HuckFinn.txt']
['C:\\Users\\Maverick.DESKTOP-N0E7K8Q\\Desktop\\python
notes\\Data\\books\\Macbeth.txt']
final_output = get_paths("../Data/books")
print(final_output)
['../Data/books\\AnnaKarenina.txt']
['../Data/books\\HuckFinn.txt']
['../Data/books\\Macbeth.txt']
None
我觉得我需要返回一些东西,以便打印功能可以正常工作,但我不知道我需要返回什么。任何帮助都将不胜感激
似乎需要返回匹配文件名的列表
您可以创建一个列表,将其累加到其中,然后返回:
或列表:
请注意,
glob
在本例中正好是这样做的(另外,在windows上,它还将匹配以.TXT
(大写)结尾的文件,而第一个解决方案不匹配(除非在测试中插入.lower()
):实现目标最有效的方法是将函数转换为生成器:
然后你的列表变量就可以理解了
打印或根据需要使用
None
已经没有问题了(见下面的评论)。作为参考,如果不是,你可以过滤理解:您只需要存储结果并返回列表,而不是在解释
None
的函数中打印它如果您想使用理解列表:
相关问题 更多 >
编程相关推荐