python读取当前文件所在的文件夹名称
时间: 2023-08-19 17:04:48 浏览: 66
可以使用Python内置的`os`模块来读取当前文件所在的文件夹名称。可以通过以下代码实现:
```python
import os
current_dir = os.path.dirname(os.path.abspath(__file__))
folder_name = os.path.basename(current_dir)
print(folder_name)
```
其中,`os.path.abspath(__file__)`是获取当前文件的绝对路径,`os.path.dirname()`则可以获取当前文件所在的文件夹路径,最后使用`os.path.basename()`方法获取文件夹名称。
相关问题
Python读取当前程序目录input文件夹下多个zip文件,将zip里面的Excel第0个sheet表里的A5单元格里的图片保存,图片保存路径在当前程序output文件夹里,新建1个文件夹名为 Excel的sheet名代码,每行添加注释
好的,我理解了你的问题。以下是解决方案:
1. 首先,你需要导入Python的zipfile和openpyxl库。
2. 接着,你可以使用os库获取当前程序所在目录,然后在input文件夹下查找所有的zip文件:
```python
import os
import zipfile
input_dir = os.path.join(os.getcwd(), "input")
zip_files = [f for f in os.listdir(input_dir) if f.endswith('.zip')]
for zip_file in zip_files:
with zipfile.ZipFile(os.path.join(input_dir, zip_file)) as z:
# 处理第0个sheet表
sheet_name = z.sheetnames[0]
sheet = z.open(sheet_name)
workbook = openpyxl.load_workbook(sheet)
worksheet = workbook.active
image_cell = worksheet['A5']
image_path = image_cell.value
# 保存图片到输出文件夹
output_dir = os.path.join(os.getcwd(), "output", sheet_name)
os.makedirs(output_dir, exist_ok=True)
image_name = os.path.basename(image_path)
with open(os.path.join(output_dir, image_name), 'wb') as f:
f.write(z.read(image_path))
# 添加注释
comments = ['这是图片', '这是另外一个注释']
for i, comment in enumerate(comments):
cell = worksheet.cell(row=image_cell.row+i+1, column=1)
cell.comment = openpyxl.comments.Comment(comment, 'author')
workbook.save(os.path.join(output_dir, 'output.xlsx'))
```
这段代码将遍历input文件夹下的所有zip文件,打开每个zip文件并处理第0个sheet表。获取图片路径后,将图片保存到output文件夹并创建Excel文件,最后在每行下方添加注释。
注意,保存的图片文件名可能会与其原始名称不同,因此代码中使用os.path.basename()方法获取保存到输出文件夹中的图片文件名。
希望这个解决方案可以帮助你,如有问题可以继续提问。
写一个python脚本,把我指定文件夹以及其子目录内的txt文件,全部转化为csv格式。然后将csv文件用当前文件夹名称命名。
以下是一个可能的Python脚本,可以实现将指定文件夹及其子目录内的txt文件转换为csv格式,并将csv文件以当前文件夹名称命名:
```python
import os
import csv
# 定义函数将txt文件转换为csv文件
def txt_to_csv(txt_file, csv_file):
with open(txt_file, 'r') as f_in, open(csv_file, 'w', newline='') as f_out:
reader = csv.reader(f_in, delimiter='\t') # 假设txt文件用tab分隔
writer = csv.writer(f_out)
writer.writerows(reader)
# 获取当前脚本所在的文件夹名称
folder_name = os.path.basename(os.path.dirname(os.path.abspath(__file__)))
# 遍历指定文件夹及其子目录内的txt文件,并将其转换为csv文件
for root, dirs, files in os.walk('./my_folder'): # 将'./my_folder'改为指定的文件夹路径
for file in files:
if file.endswith('.txt'):
txt_path = os.path.join(root, file)
csv_path = os.path.join(root, folder_name + '.csv')
txt_to_csv(txt_path, csv_path)
```
注意,在代码中,需要将`./my_folder`改为指定的文件夹路径,即要转换的txt文件所在的文件夹。此外,代码中使用了`csv`模块来读取和写入csv文件。在实际使用中,也可以使用其他第三方库或自行编写读写文件的函数来实现转换。