以下是我目前在Windows中的内容:
import os
os.chdir("C:/Users/any/Desktop/test")
for files in os.listdir("."):
print files
现在打印出来:
test picture.jpg
test script.bat
test text.txt
但是现在我被卡住的地方输出是随机的,每个文件夹都已完成,因此我对解决方案的想法就是让它获取列表并将每个文件单独标记为
filename1
filename2
filename3
现在filename1 = test picture.jpg
修改的
我正在尝试做的是稍后在我的代码中将使用每个文件名,例如说我试图重命名我的文件,以便任何包含字母'e'的文件,它将被更改到'a'字符:
import os
os.chdir("C:/Users/any/Desktop/test")
for files in os.listdir("."):
print files
files = files.replace('e', 'a')
print files
但我需要能够让它单独执行每个文件名,因此代码看起来像这样:
import os
os.chdir("C:/Users/any/Desktop/test")
for files in os.listdir("."):
print filename1
filename1 = filename1.replace('e', 'a')
print filename1
答案 0 :(得分:3)
虽然我并非100%确定我明白你要做什么,但你可以试试这个:
dirlist = os.listdir('.')
然后从{0}开始的每个索引将从您的目录中生成一个条目。索引值实际上取代了文件名的数字。
所以而不是
dirlist
你有
filename1
filename2
filename3
只需很少的工作量,并且可以轻松地以索引的任何顺序引用单个条目。
和作为额外的奖励,如果需要,您可以轻松地使用dirlist[0]
dirlist[1]
dirlist[2]
- 循环遍历此名单列表
for
对于您在原始帖子中提到的单个文件名,这会有点棘手。
<强>更新强>:
鉴于您对帖子的修改,您可以使用原始代码实现目标:
for names in dirlist:
...
答案 1 :(得分:0)
如果您将所有这些名称添加到列表中,您将拥有预建的索引和编号系统:
>>> lst = ['a','b','c']
>>> lst.index('b')
1
>>> lst[1]
'b'
在你的情况下:
files = os.listdir('.')
files[0] # first file
files[3] # fourth file (first one is 0)
答案 2 :(得分:0)
如果您只是将它们命名为增量,那么为什么不将它们存储在列表中?
filenames = []
filenames.extend(os.listdir("."))
filenames[0] # filename1 equivalent
filenames[1] # filename2 equivalent
我在这里使用extend
的原因是你想要从各种文件夹中构建一个文件名列表。