有没有办法在命名新创建的文件时使用导入文件的名称?

Is there a way to use the name of the imported file in naming a new created file?

在我的程序中,我导入了某个文件,最后我创建了一个文件来保存输出。我想使用导入文件的名称(添加一些)作为新建文件的名称。

由于我有大量文件要导入,我想这样做是为了更好地了解哪些文件是基于哪些文件创建的。

例如:我用 file=open(‘summer.txt’) 打开一个文件,我想使用原始文件的 'summer' 并只添加年份,新文件的名称将是 'summer2020.txt'.

我想自动检测导入文件的名称,添加年份,这将是我的新文件的名称。 (添加到名称 ('2020') 的内容对于每个打开的文件都是相同的)

我还是 python 的新手,所以我不知道这是否可行,或者是否有更好的方法。非常感谢您的帮助!

下面是一个自动获取当前年份的例子:

from datetime import datetime
curdate = datetime.now()
curyear = str(curdate.year)
file = open('summer'+curyear+'.txt')

如果您使用的是 Python 3.9,则可以使用 pathlib 和新的 with_stem 方法

file_path=Path('summer.txt')
new_file_path = file_path.with_stem(file_path.stem+'2020')

使用 pathlib 的优势在于它支持多个平台 (win/osx/linux) 以及它们指定路径的不同方式。还允许您轻松地将文件名拆分为词干 summer 和后缀 .txt.

对于 python 的版本,例如 3.6.5,您可以改为执行以下操作

new_file_path = file_path.with_name(f"{file_path.stem}2020{file_path.suffix}")

由于您有很多文件,您可能需要类似

的文件
import glob, shutil
myfiles = glob.glob("*.txt")
for fname in myfiles:
    basename = fname[:-4] # drop .txt at the end
    newname = f"{basname}2020.txt"
    shutil.copy(fname, newname)