创建一个Python程序来修改名称以数字

时间:2015-12-04 14:30:12

标签: python file directory

我正在寻求帮助。以下是我最近创建的一个程序。

def my_main(ifile_name, ofile_name):
ifile_name = open(ifile_name, 'r')
lines = ifile_name.readlines()

ofile_name = open(ofile_name, "w")

start = 0
end = len(lines) - 1
while start < end:
    ofile_name.write(lines[start])
    ofile_name.write(lines[end])
    start += 1
    end -= 1
if start == end:
    ofile_name.write(lines[start])
ifile_name.close()
ofile_name.close()

当代码执行时,它会更改输入文件的格式,然后将其输出到输出文件。

我现在想要进一步提供此代码。我想创建一个程序来运行这个程序,但只对一个以数字结尾的文件进行更改。例如,我有一个按此顺序的文件夹

file_1
file_a
file_b
file_2
file_3

我希望能够创建一个程序,或者如果可以的话,修改我当前的程序,只修改指定目录中以数字结尾的文件。只是想知道是否有人对我如何做到这一点有什么建议或帮助?

感谢。

更新

我创建了一些代码如下所示。它运行时没有错误,但它不会对文件进行任何更改。

def my_main():
for filenames in os.listdir("D:/College 3rd year/Semester 1/Scripting/Assignment2/ex09/"):
    if filenames.endswith("1"):
        execfile('C:/Users/Colin/Desktop/Python/ex01.py')

在&#34; ex09&#34;目录有一个名为&#34; file_1&#34;的文件,我的代码是否足以通过执行我以前的python程序来更改file_1?

2 个答案:

答案 0 :(得分:1)

为此,您需要为代码使用正则表达式,以便知道将使用file_(x)模式调用每个文件。其中 x 是文件的编号。因此,您的代码将按编号标识您的文件名。

答案 1 :(得分:0)

您可以使用glob:

创建以数字结尾的所有文件的列表
import glob
flist = glob.glob('*[0-9]')