簡體   English   中英

如何使用文件名作為輸入?

[英]How can I use file names as an input?

我寫了一個 python 腳本(帶有 pandas 庫)來創建 txt 文件。 我還使用 txt 文件作為輸入。 它運作良好,但我想讓它更加自動化。

我的代碼開始像;

girdi = input("Lütfen gir: ")
input2 = girdi+".txt"
veriCNR = pd.read_table(
    input2, decimal=",",
    usecols=[
        "Chromosome",
        "Name",
.
.
.

我正在一一輸入文件的名稱並獲得如下輸出:

.
.
.    
outputCNR = girdi+".cnr"
sonTabloCNR.to_csv(outputCNR, sep="\t", index=False)

outputCNS = girdi+".cns"
sonTabloCNS.to_csv(outputCNS, sep="\t", index=False)

outputCNG = girdi+".genemetrics.cns"
sonTabloCNG.to_csv(outputCNG, sep="\t", index=False)

如您所見,我也將輸入名稱用於輸出。 它們是制表符分隔的 txt 文件,具有不同的文件擴展名。

我想使用文件夾中的所有 txt 文件作為輸入,並為每個文件運行此腳本。

我希望我解釋清楚。

附言。 我不是程序員。 請用代碼解釋:)

您可以將創建文件的代碼放在將文件路徑作為輸入的 function 中:

def generate_results(input_filepath):
    # your code generating the files

然后您可以在循環中使用此 function 來生成所有結果文件。

這是一個使用glob獲取directory中所有文本文件的示例

import os
import glob

directory = "path to my directory"
for filepath in glob.glob(os.path.join(directory, "*.txt")):
    generate_results(filepath)

如果要遍歷文件夾中的文件,請使用os.listdir(path) 它返回路徑上的文件名列表(默認為當前目錄)。

例如:

import os

supported_extensions = ['.cns', '.cnr']
for filename in os.listdir():
    # Make sure file has desired extension
    if os.path.splitext(filename)[1] in supported_extensions:
        function(filename)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM