0

初心者の python プログラマーです。スクリプトを作成しましたが、フォルダー内のファイルを実行するように開始を変更したいので、入力ファイルと出力ファイルの拡張子を毎回変更する必要はありません。

入力ファイルのフォルダーには、「chr1」「chr2」「chrx」などの染色体ファイルが含まれています。別のフォルダーとパスウェイに出力し、入力ファイルを出力ファイルのベースとして使用し、拡張子も追加したい「windowstatistics」など。たとえば、入力ファイル 'chr1' は、'chr1windowstatistics' として別のフォルダーに出力されます。

実用的な解決策が得られずに、これを数日間解決しようとしています。

現在私は持っています:

import os
import glob

path = '/man/genotyping/Conservation/splitbychrom/'
for infile in glob.glob( os.path.join(path, 'Chr*') ):


    inputfile = open(infile, 'r') 
    output = os.rename(inputfile + ".out", 'w')

誰かがこれを機能させる方法を知っていますか?それが行われる方法がまったく異なるかどうかは気にしません.スクリプトを一度実行してファイルを反復処理できるようにしたいだけです.

明確にするために質問を再構成する必要がある場合はお知らせください。ご協力いただきありがとうございます。本当に感謝しています。

4

2 に答える 2

1

欲しいものを書き留めてください-それは私には不明確です.

  1. 名前を変更しますか? 次にos.rename()、名前を変更する対象と対象を指定します。あなたの場合、元のファイルの名前を新しい名前に変更したいと考えていますが、これは確かにw. そうですos.rename(infile, newfilename)

  2. 出力データを処理して別の場所に配置しますか? 次に、書き込み用にファイルを開き、正しいファイル名を指定します: do output = open(infile + ".out", 'w')

特に、ファイル名とファイル オブジェクト、特に関数の動作を混同しないでください。

于 2012-05-31T13:26:41.353 に答える
0

ファイルの名前を変更するには: os.rename(infile, infile + ".out")

os.rename は、ソース パスとターゲット パスの 2 つの文字列を取ります。「出力」への割り当ては未使用です。

ファイルをコピーするには (*nix の場合): os.system ("cp " + infile + " " + infile" + ".out")

于 2012-05-31T13:21:00.027 に答える