目录和文件相关的疑惑?

时间:2010-05-28 10:50:02

标签: python

我有一个包含大约1000个文件的目录....我想为每个文件运行相同的代码...

我的代码需要输入文件名。

我已经编写了代码,将其中一个信息以其他格式复制到其他格式中... 请建议一种方法,逐个复制所有1000个文件,而不必每次都更改文件名

我有一个字段serial_num需要连续,即如果第一个文件最多30个,那么在处理其他文件时它应该从30不再从0继续

需要帮助

感谢..

from string import Template
from string import Formatter
import pickle
f=open("C:/begpython/wavnk/text0004.lab",'r')
p='C:/begpython/wavnk/text0004.wav'
f1=open("C:/begpython/text.txt",'a')
m=[]
i=0
k=f.readline()
while k is not '':
    k=f.readline()
    k=k.rstrip('\n')
    mi=k.split(' ')
    m=m+[mi]
    i=i+1

y=0
x=[]
j=1
t=(i-2)
while j<t:
    k=j-1
    l=j+1
    if j==120 or j==i:
       j=j+1
    else:
        x=[]
        x = x + [y, m[j][2], m[k][2], m[l][2], m[j][0], m[l][0], p]
        y=y+1
        #f1.writelines(str(x)+'\n')
        for item in x:
            f1.write(str(item)+'   ')
        f1.write(str('\n'))
        j=j+1

f.close()
f1.close()

我的代码.....

我有像text0001 ..... text1500.lab这样的系列文件名,并且想要一次运行它们而不需要每次都通过changin名称来调用它们

enter code here

3 个答案:

答案 0 :(得分:2)

为什么不在目录中的文件列表上使用迭代器?我会发布一些示例代码,但我确实感觉到你正在让其他所有人为你完成整个工作。

答案 1 :(得分:1)

您也可以查看glob模块。就这么简单:

import glob
list_of_files = glob.glob('C:/begpython/wavnk/*.lab')

是的,它也适用于Windows。 但是,它只找到匹配的文件,不会读取它们或任何东西。

通过代码示例的外观,您可能对python感兴趣,也可能不感兴趣 csv模块也是如此。

答案 2 :(得分:0)

您可以使用[listdir] [1]列出目录的内容。

您可以使用类似

的内容过滤扩展程序
allnames = listdir...
inputnames = [name for name in allnames \
              where os.path.[splitext][2](name)\[1\] == ".lab" ]

您还可以查看filter()或map()内置函数。

http://docs.python.org/library/os.path.html#os.path.splitext