我正在尝试将Python脚本here用于我自己的目的。我不是Python的家伙,所以希望有人能看出我的错误。
以下脚本不会出错。我的CSV创建时没有值。我有加入问题吗?我希望将数据写入CSV。
# import the standard libraries you'll need
import os # https://docs.python.org/2/library/os.html
import re # https://docs.python.org/2/library/re.html
# this function will walk your directories and output a list of file paths
def getFilePaths(directory):
file_paths = []
for root, directories, files in os.walk(directory):
for filename in files:
filepath = os.path.join(root, filename)
file_paths.append(filepath)
return file_paths
audio_file_paths = getFilePaths("Z:\Dropbox\Apps\DirScan\files")
output_to_csv = [];
for audio_file in audio_file_paths:
base_path, fname = os.path.split(audio_file)
reg_ex = re.compile("^(.*) - (.*) - (.*).mp3$");
# now apply the compiled regex to each path
name_components = reg_ex.match(fname);
output_to_csv.append("{0},{1}".format(",".join(name_components), base_path));
#create the file, making sure the location is writeable
csv_doc = open("database.csv", "w");
# now join all the rows with line breaks and write the compiled text to the file
csv_doc.write( '\n'.join(output_to_csv) );
#close your new database
csv_doc.close()
答案 0 :(得分:1)
运行代码时出现此错误:
Traceback (most recent call last):
File "x.py", line 29, in <module>
output_to_csv.append("{0},{1}".format(",".join(name_components), base_path));
TypeError
因为name_components
是一个正则表达式Match
对象,它不能作为join
的参数。您需要替换:
",".join(name_components)
使用:
",".join(name_components.groups())
进行更改后,我可以看到CSV文件被正确写入。
另一个小问题:你不需要在python的一行末尾加一个分号。