Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重命名文件(最好使用python)_Python_File_Rename - Fatal编程技术网

重命名文件(最好使用python)

重命名文件(最好使用python),python,file,rename,Python,File,Rename,我解决不了一个问题,希望你能帮助我 我有几个文件夹,其中包含文件*.gz,我需要稍微修改名称,如下面的示例所示 我在考虑用{filenames:[列表按{]}拆分]创建一个字典,然后再次加入,但将R1_001的001_R1顺序更改为最终的os.rename,但肯定有更好的方法 谢谢你的帮助 旧名: 新名称: 如果您有GNU用户空间,我将使用rename命令: rename _R1_ _ *.gz rename .fastq.gz _R1.fastq.gz *.gz 否则,在Python中,列

我解决不了一个问题,希望你能帮助我

我有几个文件夹,其中包含文件*.gz,我需要稍微修改名称,如下面的示例所示

我在考虑用{filenames:[列表按{]}拆分]创建一个字典,然后再次加入,但将R1_001的001_R1顺序更改为最终的os.rename,但肯定有更好的方法

谢谢你的帮助

旧名:

新名称:


如果您有GNU用户空间,我将使用rename命令:

rename _R1_ _ *.gz

rename .fastq.gz _R1.fastq.gz *.gz

否则,在Python中,列出目录、在扩展名上进行筛选或其他操作,映射重命名函数并对每对原始名称和新名称调用os.rename。

我想我已经找到了解决我自己问题的方法。由于我刚刚开始学习python,我相信有更好的方法来学习。请随时给我提建议。 这是重命名文件的脚本:

#!/usr/bin/env python -tt

import os

def fq_filelist():fqlist=os.popen('ls *.gz').read().rstrip().split('\n')
       return fqlist

def split_filename():
  mydict = {}
  fqlist = fq_filelist()
  for i in fqlist:
    a = i.rstrip('.fastq.gz')
    for x in a:
      mydict[i] = [a.split('_')]
  return mydict

def myrename():
  mydict = split_filename()
  for i in mydict.keys():
      for x in mydict[i]:
        newname = x[0]+"_"+x[1]+"_"+x[2]+"_"+x[4]+"_"+x[3]+".fastq.gz"
        os.rename(i,newname)

myrename()

哈维尔,谢谢你的回复。问题是使用rename我得到了:F02_TAGCTT_L005_R1_001_R1.fastq.gz,但我需要F02_TAGCTT_L005_001_R1.fastq.gz。由于001这个术语在文件中发生了变化,所以我不能使用rename。我将按照您的建议尝试python。如果得到一个合适的脚本,我会把它贴在这里,第一个重命名应该删除R1,第二个在结尾添加_R1。如果有两个R1,则第一个重命名不起作用。玩到你做对为止,对!我知道。我使用rename和python脚本得到了相同的结果。我不知道重命名,很高兴学习一个新命令。
rename _R1_ _ *.gz

rename .fastq.gz _R1.fastq.gz *.gz
#!/usr/bin/env python -tt

import os

def fq_filelist():fqlist=os.popen('ls *.gz').read().rstrip().split('\n')
       return fqlist

def split_filename():
  mydict = {}
  fqlist = fq_filelist()
  for i in fqlist:
    a = i.rstrip('.fastq.gz')
    for x in a:
      mydict[i] = [a.split('_')]
  return mydict

def myrename():
  mydict = split_filename()
  for i in mydict.keys():
      for x in mydict[i]:
        newname = x[0]+"_"+x[1]+"_"+x[2]+"_"+x[4]+"_"+x[3]+".fastq.gz"
        os.rename(i,newname)

myrename()