用python写一个程序 获取当前目录下所有文件的文件名 并根据不带后缀的文件名生成目录 将文件移动到相应的文件夹中
时间: 2024-02-27 21:53:22 浏览: 80
好的,以下是用 Python 实现获取当前目录下所有文件的文件名,并根据不带后缀的文件名生成目录,将文件移动到相应的文件夹中的代码:
```python
import os
import shutil
# 获取当前目录下所有文件的文件名
file_names = os.listdir()
# 创建目录并移动文件
for file_name in file_names:
if os.path.isfile(file_name):
# 获取不带后缀的文件名
base_name = os.path.splitext(file_name)[0]
# 根据不带后缀的文件名生成目录名
dir_name = base_name
# 如果目录不存在,则创建目录
if not os.path.exists(dir_name):
os.makedirs(dir_name)
# 移动文件到相应的目录中
shutil.move(file_name, os.path.join(dir_name, file_name))
```
这段代码与上一个代码的区别在于,在获取不带后缀的文件名后,直接使用该文件名作为目录名,而不是在其基础上进行其他操作。其他的流程与上一个代码相同。
这样就可以实现获取当前目录下所有文件的文件名,并根据不带后缀的文件名生成目录,将文件移动到相应的文件夹中的功能了。
相关问题
帮我用python代码实现以下内容:批量读取文件中的所有txt文件,获取所有txt文件的文件名,将所有的文件名去掉后缀。再打开另一个文件夹,获取这个文件夹中的所有文件的文件名,与txt文件名做对比,文件名相同的留下,不相同的删除
以下是Python代码实现:
```python
import os
# 获取指定路径下的所有txt文件名
def get_txt_filenames(path):
filenames = []
for root, dirs, files in os.walk(path):
for file in files:
if file.endswith('.txt'):
filenames.append(os.path.splitext(file)[0])
return filenames
# 获取指定路径下的所有文件名
def get_all_filenames(path):
filenames = []
for root, dirs, files in os.walk(path):
for file in files:
filenames.append(os.path.splitext(file)[0])
return filenames
# 删除不在txt文件名列表中的文件
def delete_files(path, txt_filenames):
for root, dirs, files in os.walk(path):
for file in files:
if os.path.splitext(file)[0] not in txt_filenames:
os.remove(os.path.join(root, file))
# 批量读取所有txt文件名
txt_filenames = get_txt_filenames('txt_files_path')
# 获取另一个文件夹中的所有文件名
all_filenames = get_all_filenames('another_folder_path')
# 删除不在txt文件名列表中的文件
delete_files('another_folder_path', txt_filenames)
```
需要将代码中的 `txt_files_path` 和 `another_folder_path` 替换为实际的路径。
获取文件夹下的指定后缀文件名 python
可以使用os模块和列表推导式来实现:
```python
import os
folder_path = '/path/to/folder/'
file_extension = '.txt' # 指定后缀名
# 使用列表推导式获取所有指定后缀的文件名
files = [f for f in os.listdir(folder_path) if f.endswith(file_extension)]
# 输出文件名列表
print(files)
```
如果要获取文件的完整路径,可以将列表推导式中的文件名改为文件的完整路径:
```python
import os
folder_path = '/path/to/folder/'
file_extension = '.txt' # 指定后缀名
# 使用列表推导式获取所有指定后缀的文件路径
file_paths = [os.path.join(folder_path, f) for f in os.listdir(folder_path) if f.endswith(file_extension)]
# 输出文件路径列表
print(file_paths)
```
阅读全文