python把当前文件名改成上级文件夹名+当前文件名
时间: 2023-09-20 14:08:16 浏览: 89
可以使用Python的os模块来实现将当前文件名改为上级文件夹名加上当前文件名的形式。具体实现代码如下:
```python
import os
# 获取当前文件所在目录的绝对路径
current_dir = os.path.abspath(os.path.dirname(__file__))
# 获取上级目录的名称
parent_dir_name = os.path.basename(os.path.abspath(os.path.join(current_dir, "..")))
# 获取当前文件的名称
file_name = os.path.basename(__file__)
# 构造新的文件名
new_file_name = parent_dir_name + '_' + file_name
# 将当前文件名改为新的文件名
os.rename(os.path.join(current_dir, file_name), os.path.join(current_dir, new_file_name))
```
这段代码会将当前文件名改为上级文件夹名加上当前文件名的形式,例如,如果当前文件名为`test.py`,当前文件所在目录为`/home/user/project/src`,则运行该代码后,文件名会被改为`project_src_test.py`。
相关问题
批量把文件夹里子文件命改成上级文件夹名
批量将文件夹内的子文件名修改为上一级文件夹的名称通常涉及到脚本操作,比如在Windows下可以使用批处理(.bat)文件,而在Linux或macOS下则可能需要使用bash或Python等编程语言编写shell脚本。
在Windows批处理中,你可以创建一个新的.bat文件,例如:
```batch
@echo off
setlocal enabledelayedexpansion
for /r %1 %%i in (*.*) do (
set "oldName=%%~ni"
set "newName=!parentFolderName!_!oldName!"
ren "%%i" "!newName!"
)
rem 替换 parentFolderName 为你实际的文件夹路径
set "parentFolderName=%~dp1"
```
保存这个文件,然后双击运行,传入你需要改名的文件夹路径作为参数,它会递归遍历该文件夹及其所有子文件夹,将每个文件名前加上上一级文件夹名。
在Linux/macOS中,你可以用类似于下面的bash命令行:
```bash
#!/bin/bash
for file in $(find "$1" -type f); do
dir=$(dirname "$file")
base_name=$(basename "$dir")
new_name="${base_name}_${(basename "$file")}"
mv "$file" "$(pwd)/$new_name"
done
```
这里同样需要替换`$1`为你要处理的文件夹路径。
请注意,修改文件名之前最好先备份原文件,以防意外。而且对于非常大的文件夹或包含特殊字符的文件名,可能会遇到一些问题,这时可能需要额外处理。
python如何把csv文件的文件名改成以第一行第5列和第6列数据的组合作为文件名
可以按照如下方式修改csv文件的文件名:
```
import csv
import os
# csv文件所在的文件夹路径
folder_path = "/path/to/folder"
# 遍历文件夹中的所有csv文件
for file_name in os.listdir(folder_path):
if file_name.endswith(".csv"):
file_path = os.path.join(folder_path, file_name)
with open(file_path, "r") as f:
reader = csv.reader(f)
# 获取第一行的数据
first_row = next(reader)
# 获取第5列和第6列的数据作为新文件名
new_file_name = f"{first_row[4]}_{first_row[5]}.csv"
# 生成新文件路径
new_file_path = os.path.join(folder_path, new_file_name)
# 重命名文件
os.rename(file_path, new_file_path)
```
在上述代码中,我们首先通过遍历文件夹中的所有csv文件,对于每个csv文件,我们打开它并读取第一行数据。然后,我们从第一行数据中获取第5列和第6列的数据作为新文件名,并生成新的文件路径。最后,我们使用 `os.rename()` 函数将原文件重命名为新的文件名。
阅读全文