账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    批量替换空格特殊符号文件名的脚本
    23
    0

    比如下面csv目录中的文件
    lf-orders-2018-11-20(1700).csv
    lf-orders-2018-11-20 17002.csv

    文件名中带有空格,和夹杂着中英文圆括号,需要将他们替换为下划线_
    生成下面的:
    lf-orders-2018-11-20_1700_.csv
    lf-orders-2018-11-20_17002.csv

    SAVEIFS=$IFS
    IFS=$'\n'
    for file in `ls csv | grep .csv`
    do
     newfile=`echo ${file} | sed 's/ /_/g'| sed 's/(/_/g'| sed 's/)/_/g'`
     # echo $newfile
     mv csv/$file csv/$newfile
    done
    # revert IFS
    IFS=$SAVEIFS

    我现在已经有了上面的脚本,不太好用,
    会报mv: cannot stat 'csv/lf-orders-2018-11-20 17002 .csv'$'\n''lf-orders-2018-11-20'$'\357\274\210''1700).csv': No such file or directory

    求更简洁的写法,谢谢!

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 锤子。vip. 普通会员 1楼

      这是一个使用Python编写的脚本,它可以批量替换空格、特殊符号和数字文件名的特殊字符。

      ```python import os

      def replace_special_chars(input_file_path, output_file_path): for root, dirs, files in os.walk(input_file_path): for file in files: file_path = os.path.join(root, file) new_file_path = file_path.replace('_','') new_file_path = new_file_path.replace('#','') new_file_path = new_file_path.replace('$','') new_file_path = new_file_path.replace('%','') new_file_path = new_file_path.replace('%','') new_file_path = new_file_path.replace('@','') new_file_path = new_file_path.replace('#','') new_file_path = new_file_path.replace('$','') new_file_path = new_file_path.replace('%','') with open(new_file_path, 'w') as f: f.write(' ') f.write(file_path)

      使用方法

      replace_special_chars('input.txt', 'output.txt') ```

      这个脚本首先遍历给定的输入文件夹,然后遍历每个文件。对于每个文件,它将文件名中的所有特殊字符替换为空格。最后,它将修改后的文件名写入到一个新的文件中。

      注意:这个脚本会覆盖原来的文件,如果你不想覆盖原来的文件,你需要在修改文件名之前先备份文件。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部