我想执行几个具有相似名称的 .py 文件。目标是调用 a1.py、a2.py 和 a3.py。我已经尝试过下面的内容,但我无法让它工作。如何将“n”中的每个元素插入文件名以执行多个脚本?谢谢你的帮助。
n = [1,2,3]
for x in n:
execfile('C:/a$n.py')
就个人而言,我真的更喜欢使用字符串格式来连接(对各种数据类型更健壮)。此外,没有理由保留这样的列表,它可以替换为range
for x in range(1,4):
execfile('C:/a%s.py' % x)
range(1, 4) == [1, 2, 3] # True
也就是说,format
Marcin 使用的命令在技术上更符合 Python 风格。我个人觉得它过于冗长。
我相信字符串连接是性能最高的选项,但性能真的不应该是你的决定因素。
回顾一下:
Pythonic 解决方案:
execfile('C:/a{}.py'.format(x))
C型解决方案(我个人更喜欢):
execfile('C:/a%s.py' % x)
高性能解决方案(同样,性能真的不应该是你的驱动力)
execfile('C:/a' + str(x) + '.py')
编辑:原来我错了,C 型解决方案是最高效的。timeit
结果如下:
$ python -m timeit '["C:/a{}.py".format(x) for x in range(1,4)]'
100000 loops, best of 3: 4.58 usec per loop
$ python -m timeit '["C:/a%s.py" % x for x in range(1,4)]'
100000 loops, best of 3: 2.92 usec per loop
$ python -m timeit '["C:/a" + str(x) + ".py" for x in range(1,4)]'
100000 loops, best of 3: 3.32 usec per loop
for x in n:
execfile('C:/a{}.py'.format(x))
更好的:
for x in range(1,4):
execfile('C:/a{}.py'.format(x))
你可以这样做:
n = [1,2,3]
for x in n:
execfile('C:/a{}.py'.format(x))
print('C:/a{}.py'.format(x))
名称将是:
C:/a1.py
C:/a2.py
C:/a3.py