Python 文件重命名语法错误
Python file renaming syntax error
我需要使用以下格式重命名许多文件:
509938_OPS001_ACTCGCTA-TCGACTAG_L001_R1_001.fastq.gz
我已经测试了我的正则表达式:
\d+\w([OPS]+\d+)[_]\w+-\w+[_](\d+)(\.fastq\.gz)
我尝试了以下脚本的多个版本,但每个版本都会在 re.sub.
之后抛出语法错误
import glob, re, os
for filename in glob.glob('some/dir/*.fastq.gz'):
new_name = re.sub(\d+\w([OPS]+\d+)[_]\w+-\w+[_](\d+)(\.fastq\.gz), r'_', filename)
os.rename(filename, new_name)
$python fastq_rename.py
File "fastq_rename.py", line 6
new_name = re.sub(\d+\w([OPS]+\d+)[_]\w+-\w+[_](\d+)(\.fastq\.gz)), r'_', filename)
^
SyntaxError: unexpected character after line continuation character
假设这与未转义的反斜杠有关,我用 r' '
将正则表达式括起来,这样可以避免错误,但不会更改文件名。
new_name = re.sub(r'\d+\w([OPS]+\d+)[_]\w+-\w+[_](\d+)(\.fastq\.gz)', r'_', filename)
new_name="some/dir/"+newname
在 r
中包含正则表达式。另外 os.rename
的 newname
参数应该包含文件路径,否则它会将文件重命名为调用脚本时所在的目录。
我需要使用以下格式重命名许多文件:
509938_OPS001_ACTCGCTA-TCGACTAG_L001_R1_001.fastq.gz
我已经测试了我的正则表达式:
\d+\w([OPS]+\d+)[_]\w+-\w+[_](\d+)(\.fastq\.gz)
我尝试了以下脚本的多个版本,但每个版本都会在 re.sub.
之后抛出语法错误import glob, re, os
for filename in glob.glob('some/dir/*.fastq.gz'):
new_name = re.sub(\d+\w([OPS]+\d+)[_]\w+-\w+[_](\d+)(\.fastq\.gz), r'_', filename)
os.rename(filename, new_name)
$python fastq_rename.py
File "fastq_rename.py", line 6
new_name = re.sub(\d+\w([OPS]+\d+)[_]\w+-\w+[_](\d+)(\.fastq\.gz)), r'_', filename)
^
SyntaxError: unexpected character after line continuation character
假设这与未转义的反斜杠有关,我用 r' '
将正则表达式括起来,这样可以避免错误,但不会更改文件名。
new_name = re.sub(r'\d+\w([OPS]+\d+)[_]\w+-\w+[_](\d+)(\.fastq\.gz)', r'_', filename)
new_name="some/dir/"+newname
在 r
中包含正则表达式。另外 os.rename
的 newname
参数应该包含文件路径,否则它会将文件重命名为调用脚本时所在的目录。