【问题标题】:Python copy contents of a file into another at a different directoryPython将一个文件的内容复制到另一个目录中的另一个文件中
【发布时间】:2021-09-02 17:34:16
【问题描述】:

我正在尝试将文件的内容复制到位于不同目录的另一个文件中。 我正在尝试两种方法-

shutil.copy('abc.txt', '/projects/fldr/notes/work/sg1234/lib/test/main/xyz.txt')

这种方法的问题是用户不同,所以我不能在路径中使用sg1234,我想不出改变用户的方法所以路径变成了-

shutil.copy('abc.txt', '/projects/fldr/notes/work/{user}/lib/test/main/xyz.txt')

如果我尝试这样做,那么它会引发错误。-

shutil.copy('abc.txt', '/../../../../../../../../xyz.txt')

我也试过了-

file.open(output_file_path + 'xyz.txt')
shutil.copy('abc.txt', 'xyz.txt')

但在这种情况下,它只是创建一个空文件。

我该怎么做?

【问题讨论】:

  • 你知道用户名吗?是否将它们插入路径中?
  • 如果你在变量user中有用户名,那么插入用户名的语法是f'/projects/fldr/notes/work/{user}/lib/test/main/xyz.txt'(注意最初的f)。
  • 关于您的/../../ 等,尚不清楚您在此处尝试的确切内容,但请注意,由于路径以/ 开头,它仍然是绝对路径(系统中的..根目录指向系统根目录)。
  • @zmike 我不知道用户名,用户会在那里打开文件,我正在寻找一些东西,所以它应该自动将名称添加到路径,或者是否有一种方法不需要输入文件路径,也可以。
  • 你可以使用绝对路径,不是吗?

标签: python python-3.x file parsing copy


【解决方案1】:
import shutil
import getuser

user = getpass.getuser()

shutil.copy('abc.txt', f'/projects/fldr/notes/work/{user}/lib/test/main/xyz.txt')

【讨论】:

  • 我不知道用户名,用户会在那里打开文件,我正在寻找一些东西,所以它应该自动将名称添加到路径中,或者如果有一个方法不不需要输入文件路径,也可以。
  • 我更新了我的答案。您应该为源文件abc.txt 设置绝对路径以避免出现问题。用户是否在运行此脚本?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-15
  • 1970-01-01
  • 1970-01-01
  • 2017-05-29
  • 1970-01-01
相关资源
最近更新 更多