gpt4 book ai didi

macos - 在 Mac 上将 .xls 和 .xlsx 批量转换为 .txt(制表符分隔)

转载 作者:行者123 更新时间:2023-12-02 07:02:28 27 4
gpt4 key购买 nike

我有大约 150 个 .xls 和 .xlsx 文件需要转换为制表符分隔的文件。我尝试使用 automator,但只能一项一项地完成。不过,这绝对比单独打开每个文件要快。我的脚本知识很少,所以我希望有一种尽可能轻松地完成此操作的方法。

最佳答案

如果您准备为此使用 Python,我已经编写了一个脚本,可将 Excel 电子表格转换为 csv 文件。该代码可在 Pastebin 中找到。 .

您只需要更改以下行:

writer = csv.writer(fileout)

至:

writer = csv.writer(fileout, delimiter="\t")

使输出文件以制表符分隔,而不是标准逗号分隔。

就目前情况而言,该脚本一次提示您输入一个文件(允许您从对话框中进行选择),但它可以轻松地进行修改以获取给定目录树中或名称匹配的所有 Excel 文件给定的模式。

如果您首先尝试使用单个文件并让我知道您的进展情况,如果您愿意,我可以帮助您进行更改以自动化其余部分。

更新

这是您可以使用的包装脚本:

#!/usr/bin/python

import os, sys, traceback
sys.path.insert(0,os.getenv('py'))
import excel_to_csv

def main():
# drop out if no arg for excel dir
if len(sys.argv) < 2:
print 'Usage: Python xl_csv_wrapper <path_to_excel_files>'
sys.exit(1)
else:
xl_path = sys.argv[1]

xl_files = os.listdir(xl_path)
valid_ext = ['.xls', '.xlsx', '.xlsm']

# loop through files in path
for f in xl_files:
f_name, ext = os.path.splitext(f)
if ext.lower() in valid_ext:
try:
print 'arg1:', os.path.join(xl_path,f)
print 'arg2:', os.path.join(xl_path,f_name+'.csv')
excel_to_csv.xl_to_csv(os.path.join(xl_path,f),
os.path.join(xl_path,f_name+'.csv'))
except:
print '** Failed to convert file:', f, '**'
exc_type, exc_value, exc_traceback = sys.exc_info()
lines = traceback.format_exception(exc_type, exc_value, exc_traceback)
for line in lines:
print '!!', line
else:
print 'Sucessfully conveted', f, 'to .csv'


if __name__ == '__main__':
main()

您需要替换:

sys.path.insert(0,os.getenv('py'))

顶部包含 excel_to_csv 脚本的绝对路径或系统上的环境变量。

关于macos - 在 Mac 上将 .xls 和 .xlsx 批量转换为 .txt(制表符分隔),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17798864/

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