我对 Python (3) 还很陌生。我有一堆传感器数据,但下载限制迫使我分块检索数据,而不是一次检索全部数据(下载的每个 .zip 文件都包含一个包含给定时间段内每个传感器数据的 .csv 文件的文件夹)。因此,我有数十个大型 .csv 文件分布在多个文件夹中,我最终希望将这些文件合并/合并/附加到一个 .csv 文件中,以获取每个传感器的完整数据。更复杂的是,每个传感器的 .csv 文件名在文件夹中都是相同的。我开发了以下代码来重命名文件并将其移动到一个文件夹中,以便稍后我可以连接/合并/追加。除了我插入新文件名中的数字没有递增之外,它工作得很好。
import os
path = r"C:\directory\sensordatafolders" #folders with .csv files
newPath = r"C:\directory\new" #destination for renamed files
for root, dirs, files in os.walk(path):
for name in files:
base, extension = os.path.splitest(name)
if not os.path.exists(os.path.join(newPath, base + extension))
oldfile = os.path.join(os.path.abspath(root), name)
newfile = os.path.join(newPath, base + extension)
os.rename(oldfile, newfile)
else:
i = 1
oldfile = os.path.join(os.path.abspath(root), name)
newfile = os.path.join(newPath, base + '_' + str(i) + extension)
i +=1
os.rename(oldfile, newfile)
在第二个循环(*.csv 和 *_1.csv 文件成功移动)之后,它给出了“当该文件已存在时无法创建文件”错误。这是因为(我认为)它不断尝试创建 *_1.csv 文件,而不是递增到 *_2.csv 等。
Your
i = 1
else 不应该在那里,它不断将 i 设置为 1,因此总是将 i 的值设置为 2,尝试将其放在 for 语句之外
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)