Assuming you know in advance the names of the tsv you can just put them in a list, loop on it and use the pd.concat() method to append them in the final df.
import pandas as pd
input_files=["filename1.tsv", "filename2.tsv", "filename3.tsv"]
col=["c1", "c2", "c3", "c4"]
final_df=pd.DataFrame(columns=col)
for i in input_files:
df=pd.read_csv(i, delimiter="\t", columns=col)
df["source"]=i
final_df=pd.concat([final_df, df])
final_df.to_excel("C:/Users/filenamenew.xlsx", index=False)
If you don't want to manually write the filenames in the list, you can grab them from a folder using the os module. Like that:
import pandas as pd
import os
input_files=os.listdir("C:/Path/To/The/Folder")
input_files=[f for f in input_files if f.endswith(".tsv")] #filter for tsv files only
col=["c1", "c2", "c3", "c4"]
final_df=pd.DataFrame(columns=col)
for i in input_files:
df=pd.read_csv(i, delimiter="\t", columns=col)
df["source"]=i
final_df=pd.concat([final_df, df])
final_df.to_excel("C:/Users/filenamenew.xlsx", index=False)
globor simply a for loop iterating over the names of your files.