os.path.abspath文件路径仅读取到第一层
时间: 2023-12-20 21:28:19 浏览: 71
`os.path.abspath` 函数返回一个文件的绝对路径,但是它只会将相对路径转换为绝对路径,而不会检查文件是否存在。如果你只传递了一个文件名,那么它只会返回当前工作目录下的该文件的绝对路径。如果你传递了一个相对路径,那么它会将其转换为绝对路径。
如果你想要获取一个文件的绝对路径,可以使用 `os.path.join` 函数将文件名和路径组合起来,然后再使用 `os.path.abspath` 函数将其转换为绝对路径。例如:
```python
import os
filename = 'example.txt'
path = '/home/user/documents'
absolute_path = os.path.abspath(os.path.join(path, filename))
print(absolute_path)
```
这将输出 `/home/user/documents/example.txt`。
相关问题
def get_notes(): # """ # 从music_midi目录中的所有MIDI文件里读取note,chord # Note样例:B4,chord样例[C3,E4,G5],多个note的集合,统称“note” # """ notes = [] for midi_file in glob.glob("MID/*.mid"): # 读取MID文件夹中所有的mid文件,file表示每一个文件 stream = converter.parse(midi_file) # midi文件的读取,解析,输出stream的流类型 # 获取所有的乐器部分,开始测试的都是单轨的 parts = instrument.partitionByInstrument(stream) if parts: # 如果有乐器部分,取第一个乐器部分 notes_to_parse = parts.parts[0].recurse() # 递归 else: notes_to_parse = stream.flat.notes # 纯音符组成 for element in notes_to_parse: # notes本身不是字符串类型 # 如果是note类型,取它的音高(pitch) if isinstance(element, note.Note): # 格式例如:E6 notes.append(str(element.pitch)) elif isinstance(element, chord.Chord): # 转换后格式:45.21.78(midi_number) notes.append('.'.join(str(n) for n in element.normalOrder)) # 获取D盘根目录的绝对路径 root_path = os.path.abspath("D:/pythonProject") # 拼接要创建的文件夹路径 data_path = os.path.join(root_path, "data04") # 创建文件夹 if not os.path.exists(data_path): os.mkdir(data_path) # 将数据写入data01/notes with open(os.path.join(data_path, "notes"), 'wb') as filepath: pickle.dump(notes, filepath) return notes # 返回提取出来的notes列表
这是一个Python函数,用于从MIDI文件中提取音符和和弦,并将它们保存到一个列表中。该函数首先使用glob.glob()函数获取指定目录下的所有MIDI文件路径,然后使用music21库中的converter.parse()函数解析这些MIDI文件。接着,该函数使用instrument.partitionByInstrument()函数将乐器部分分离出来,然后从每个乐器部分中提取音符和和弦,并将它们保存到一个名为notes的列表中。最后,该函数使用pickle.dump()函数将notes列表保存到一个名为"notes"的二进制文件中,并返回notes列表。
cv2.imread读取不到中文路径图片
在使用cv2.imread读取图片时,确实会遇到中文路径无法读取的问题。这是因为OpenCV的函数对于中文路径的支持不完善。
解决这个问题的方法有两种:
1. 将图片的路径转换为英文或者使用相对路径。例如,将路径"C:/图片/图片.jpg"改为"C:/images/image.jpg"。
2. 使用第三方库os.path的函数来处理中文路径。可以使用如下代码来读取中文路径图片:
```
import cv2
import os
image_path = "C:/图片/图片.jpg"
image_path = image_path.encode('utf-8').decode('unicode_escape')
image_path = os.path.abspath(image_path)
image = cv2.imread(image_path)
```
阅读全文