怎么在linux中执行def copy_files_by_txt(txt_file, source_folder, destination_folder)
时间: 2024-10-01 14:06:59 浏览: 19
在Linux中,如果你想要编写一个Python脚本来通过文本文件`txt_file`指定源目录`source_folder`下的文件复制到目标目录`destination_folder`,你可以使用以下步骤:
首先,确保你的系统上已经安装了Python解释器,并且可以在命令行中运行Python脚本。然后创建一个名为`copy_files.py`的Python文件,内容如下:
```python
import os
def copy_files_by_txt(txt_file, source_folder, destination_folder):
with open(txt_file, 'r') as f:
files_to_copy = [line.strip() for line in f if line.strip()] # 读取并处理文本文件中的每一行
for file_name in files_to_copy:
source_path = os.path.join(source_folder, file_name)
dest_path = os.path.join(destination_folder, file_name)
if not os.path.exists(os.path.dirname(dest_path)): # 检查路径是否存在,不存在则创建
os.makedirs(os.path.dirname(dest_path))
try:
# 使用shutil模块更安全地复制文件
import shutil
shutil.copy2(source_path, dest_path) # 使用copy2确保链接结构也一同复制
except Exception as e:
print(f"无法复制 {file_name}: {e}")
# 调用函数
if __name__ == "__main__":
txt_file = "file_list.txt"
source_folder = "/path/to/source/folder"
destination_folder = "/path/to/destination/folder"
copy_files_by_txt(txt_file, source_folder, destination_folder)
```
在这个脚本中,我们首先打开文本文件,读取每行非空的内容作为需要复制的文件名。然后遍历这个列表,检查每个源文件是否存在,如果存在就复制到目标位置。
要在终端中执行此脚本,你需要替换`txt_file`, `source_folder`和`destination_folder`为实际的文件路径,然后在终端中输入`python copy_files.py`。