実際には、次のようになります。
a = Analysis(['main.py'])
excluded = ['pathto\\myfile0.py', 'pathto\\myfile1.py', 'pathto\\myfile2.py']
a.scripts = [script from script in a.scripts if script[1] not in excluded]
pyz = PYZ(a.pure)
excluded_files_collect = [(f.split('\\')[-1],f,'DATA') for f in excluded]
exe = EXE(a.scripts, pyz, name="main.exe", exclude_binaries=1)
dist = COLLECT(exe, a.binaries, excluded_files_collect , name="dist")
script は実際には次の形式のタプルです。
('myfile0.py', 'pathto\\myfile0.py', 'PYSOURCE')
ファイルが PYZ に含まれないようにする必要がある場合もあります。pyz toc を参照して、ファイルが含まれるかどうかを確認してください。Analysis() で excludes=[myfile0] を使用して除外することができました。