python - 在 Python 中从外部文件中读取变量值
问题描述
目标:通过从包含要复制的文件名列表的外部文件中将每个文件名作为变量调用到 Python 脚本中,将选定文件从一个目录批量复制到同一远程服务器上的另一个目录。
问题:我需要复制超过 1000 个文件,因此将文件名粘贴到脚本本身的列表或字典中似乎没有意义。我可以很好地从外部文件读取和打印文件名。
def main():
f = open("file-list.txt", "r")
if f.mode == 'r':
flist = f.readlines()
for x in flist:
print(x.rstrip('\n'))
if __name__ == "__main__":
main()
Output:
file-1.txt
file-2.txt
但是,为了按顺序复制文件,我需要遍历 file-list.txt 并将这些文件名作为变量调用到 shutil.copy 语句中;但这会引发无效的语法错误。
import os
from os import path
import shutil
def main():
f = open("file-list.txt", "r")
if f.mode == 'r':
flist = f.readlines()
for x in flist:
shutil.copy(r"folder_1/"%s","folder_2/"%s") % x
if __name__ == "__main__":
main()
Output:
File "<ipython-input-3-223c95b85768>", line 10
shutil.copy(r"folder_1/"%s","folder_2/"%s") % x
^
SyntaxError: invalid syntax
我觉得我缺少一些基本的东西,所以任何关于解决方案的提示或建议都会受到欢迎!
解决方案- 感谢所有评论者!
import shutil
def main():
cleanlist =[]
f = open("file-list.txt", "r")
if f.mode == 'r':
flist = f.readlines()
for element in flist:
cleanlist.append(element.rstrip())
for x in cleanlist:
shutil.copy(f"folder_1/{x}",f"folder_2/{x}")
if __name__ == "__main__":
main()
解决方案
推荐阅读
- java - 语法错误(Sqlite 代码 1 SQLITE_ERROR)
- c - 不使用 [] 索引运算符的数组
- python - Flask 在页面加载时将电子邮件列表显示为 [email protected]
- c++ - 为数组分配内存
- vue.js - 如何解决通过 CDN 导入 TailwindCSS 工作正常但将其安装为 NPM 依赖项的问题不仅在 codeandbox.io 上?
- javascript - 在鼠标悬停事件期间为动态生成的表格添加弹出窗口
- javascript - 正则表达式 - 不允许大写
- reactjs - 将 react-native 组件用于 react web
- python - 根据其他列填充不同的列(第一个带有列标题,第二个带有要获取的值)
- moodle - 通过 fileurl 访问 Moodle 课程概览图像文件