【发布时间】:2017-05-18 18:17:59
【问题描述】:
假设我有一条路径 A。
A = /Users/myname/Documents/folder1
folder1内有folder2和folder3,folder2和folder3内有名为“file.txt”的文件。我想遍历folder1中的每个子目录,并将“file.txt”替换为“folder[#]_file.txt”(子目录的名称+“file.txt”)。
我有以下代码:
import os, sys
def main():
path = "/Users/myname/Documents/folder1/"
for root, subdirs, files in os.walk(path):
root = root + "/"
parent_directory = os.path.dirname(root)
for filename in os.listdir(parent_directory):
if filename.endswith("file.txt"):
path = os.path.join(parent_directory, filename)
target = os.path.join(root, parent_directory + "_" + filename) //I know this is where the issue is...not sure what to do.
os.rename(path, target)
if __name__ == '__main__':
main()
但是,使用打印语句,我看到路径设置为:
/Users/myname/Documents/folder1/folder2/file.txt
目标设置为:
/Users/myname/Documents/folder1/folder2_file.txt
而不是
/Users/myname/Documents/folder1/folder2/folder2_file.txt
我该如何解决这个问题?我已经确定了我的代码中的错误行,并且我知道它为什么会这样做,但我不确定如何调整它。
【问题讨论】:
标签: python