gpt4 book ai didi

python - 操作系统的奇怪行为

转载 作者:行者123 更新时间:2023-12-01 05:35:27 26 4
gpt4 key购买 nike

我正在尝试编写一个Python脚本,它将获取任何播放列表并在另一个文件结构上重新创建它。我现在已经写好了,以便所有文件名都从原始播放列表中删除并放入一个文件中。这样可行。然后函数 findong() 应该遍历新目录并找到相同的歌曲,并根据新的目录结构创建一个新的播放列表。

这就是奇怪的地方。如果我在“如果文件中的行”行中使用“行”作为参数,我会得到一个空的新播放列表。如果我使用我知道的任何文件作为参数,则会重新创建整个播放列表,而不仅仅是我用作参数的文件。这就是我在这段代码中设置它的方式。我无法弄清楚这种奇怪的行为。只要文件存在,就会使用新路径重新创建整个播放列表。呃??

这是代码:

import os

def check():

datafile = open('testlist.m3u')
nopath = open('nopath.txt', 'w')
nopath.truncate()

for line in datafile:
if 'mp3' in line:
nopath.write(os.path.basename(line))

if 'wma' in line:
nopath.write(os.path.basename(line))
nopath.close()

def findsong():

nopath = open('nopath.txt')
squeezelist = open('squeezelist.m3u' ,'w')
squeezelist.truncate()
for line in nopath:
print line

for root, dirs, files in os.walk("c:\\Documents and Settings\\"):
print files

if ' Tuesday\'s Gone.mp3' in files:
squeezelist.write(os.path.join(root, line))

squeezelist.close()


check()

findsong()

最佳答案

当您迭代文件中的行时,Python 会保留尾随换行符 \n。你会想把它们去掉:

for line in nopath:
line = line.rstrip()

关于python - 操作系统的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19184384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com