Python 给定文件名,转到目录中的下一个文件
我正在编写一个方法,该方法接受一个文件名和一个目录路径,并返回目录中下一个可用的文件名,如果没有文件的名称可以在该文件后排序,则返回None ,但我不确定找到单个下一个文件名的最佳解决方案是使用前面的答案之一生成的列表,然后在列表中找到当前文件的位置并选择下一个元素,还是不选择(如果我们已经在最后一个元素上) 编辑:这是我当前的文件拾取代码。它是从项目的不同部分重用的,用于从可能嵌套的一系列目录中拾取随机图像Python 给定文件名,转到目录中的下一个文件,python,python-2.7,Python,Python 2.7,我正在编写一个方法,该方法接受一个文件名和一个目录路径,并返回目录中下一个可用的文件名,如果没有文件的名称可以在该文件后排序,则返回None ,但我不确定找到单个下一个文件名的最佳解决方案是使用前面的答案之一生成的列表,然后在列表中找到当前文件的位置并选择下一个元素,还是不选择(如果我们已经在最后一个元素上) 编辑:这是我当前的文件拾取代码。它是从项目的不同部分重用的,用于从可能嵌套的一系列目录中拾取随机图像 # picks a file from a directory # if the fi
# picks a file from a directory
# if the file is also a directory, pick a file from the new directory
# this might choke up if it encounters a directory only containing invalid files
def pickNestedFile(directory, bad_files):
file=None
while file is None or file in bad_files:
file=random.choice(os.listdir(directory))
#file=directory+file # use the full path name
print "Trying "+file
if os.path.isdir(os.path.join(directory, file))==True:
print "It's a directory!"
return pickNestedFile(directory+"/"+file, bad_files)
else:
return directory+"/"+file
我现在使用的程序是获取一个聊天日志文件夹,选择一个随机日志,起始位置和长度。然后,这些将被处理成一系列类似MOTD的典型短日志片段。我需要的下一个文件拾取功能是,当长度异常长或起始行位于文件的末尾时,它将继续位于下一个文件的顶部,也就是午夜前后
我同意使用一种不同的方法来选择文件,因为上面的方法并没有谨慎地给出一个单独的文件名和目录,我无论如何都可以。
您应该考虑重写程序来不必使用这个文件。但你可以这样做:import os
def nextFile(filename,directory):
fileList = os.listdir(directory)
nextIndex = fileList.index(filename) + 1
if nextIndex == 0 or nextIndex == len(fileList):
return None
return fileList[nextIndex]
print(nextFile("mail","test"))
如何定义下一个可用文件名?@unholyseep具体来说,我正在处理聊天日志。我想标准的字母数字排序会很好,除非你是那种在日志名中使用表情符号的人。更好的结构是在目录中创建一个文件列表,然后选择一个索引开始,并在必要时增加索引以获取下一个文件吗?你也可以通过从os.listdir返回的数组进行for循环。但是,如果你喜欢这种方法,这是你的密码。如果你能标记为解决方案并投票表决,那会有很大帮助。您还可以对os.path进行排序。所以,你可以强制执行字母顺序。我编辑了我的问题,包括我现有的代码和我提出问题的理由。考虑到这一点,从os.listdir中为我的初始文件选择一个索引,然后在必要时增加该索引是否是一个更好的解决方案?