如果另一个文件夹中的 .xls 同名,如何打开文件夹中的 .txt
How to open the .txt in a folder if the .xls in another folder is of same name
有两个包含个人数据的文件夹,一个文件夹包含.txt 文件,另一个文件夹包含.xls 文件。
Folder1 :['A.txt', 'B.txt', 'C.txt']
Folder2 :['A.xls', 'B.xls', 'C.xls']
我想打开同一个人的两个文件,并根据 .xls 文件中的信息对 .txt 文件执行一些操作。
这是我试过的:
Tpath = 'Path to Folder1'
Xpath = 'Path to Folder2'
for tfilename in glob.glob(os.path.join(Tpath)):
for tfile in os.listdir(Tpath):
for xfilename in glob.glob(os.path.join(Xpath)):
for xfile in os.listdir(Xpath):
if (xfile[:-4] == tfile[:-4]):
tdf = pd.read_csv(tfilename)
xdf = pd.read_excel(xfilename)
我遇到权限被拒绝的错误。我知道这是因为我试图从一个文件夹的 for 循环访问文件到另一个文件夹的 for 循环。
但我不知道如何解决这个问题。有人可以在这里纠正我的错误吗?
您收到权限错误,因为 tfilename
和 xfilename
最终成为目录路径,而不是文件路径。您可以使用 print
而不是 read_csv
和 read_excel
:
来验证这一点
Tpath = r'\some\path\txt'
Xpath = r'\some\path\xls'
for tfilename in glob.glob(os.path.join(Tpath)):
for tfile in os.listdir(Tpath):
for xfilename in glob.glob(os.path.join(Xpath)):
for xfile in os.listdir(Xpath):
if (xfile[:-4] == tfile[:-4]):
print(tfilename)
print(xfilename)
产出
'\some\path\txt'
'\some\path\xls'
在打开文件之前,您必须将文件名加入路径,即
tdf = pd.read_csv(os.path.join(tfilename, tfile))
xdf = pd.read_excel(os.path.join(xfilename, xfile))
此时您可能想要更改 tfilename
和 xfilename
的名称,以便整个代码更有意义。
此外,我不确定为什么您的代码使用单个参数调用 os.path.join
。它没有任何作用。
有两个包含个人数据的文件夹,一个文件夹包含.txt 文件,另一个文件夹包含.xls 文件。
Folder1 :['A.txt', 'B.txt', 'C.txt']
Folder2 :['A.xls', 'B.xls', 'C.xls']
我想打开同一个人的两个文件,并根据 .xls 文件中的信息对 .txt 文件执行一些操作。
这是我试过的:
Tpath = 'Path to Folder1'
Xpath = 'Path to Folder2'
for tfilename in glob.glob(os.path.join(Tpath)):
for tfile in os.listdir(Tpath):
for xfilename in glob.glob(os.path.join(Xpath)):
for xfile in os.listdir(Xpath):
if (xfile[:-4] == tfile[:-4]):
tdf = pd.read_csv(tfilename)
xdf = pd.read_excel(xfilename)
我遇到权限被拒绝的错误。我知道这是因为我试图从一个文件夹的 for 循环访问文件到另一个文件夹的 for 循环。
但我不知道如何解决这个问题。有人可以在这里纠正我的错误吗?
您收到权限错误,因为 tfilename
和 xfilename
最终成为目录路径,而不是文件路径。您可以使用 print
而不是 read_csv
和 read_excel
:
Tpath = r'\some\path\txt'
Xpath = r'\some\path\xls'
for tfilename in glob.glob(os.path.join(Tpath)):
for tfile in os.listdir(Tpath):
for xfilename in glob.glob(os.path.join(Xpath)):
for xfile in os.listdir(Xpath):
if (xfile[:-4] == tfile[:-4]):
print(tfilename)
print(xfilename)
产出
'\some\path\txt'
'\some\path\xls'
在打开文件之前,您必须将文件名加入路径,即
tdf = pd.read_csv(os.path.join(tfilename, tfile))
xdf = pd.read_excel(os.path.join(xfilename, xfile))
此时您可能想要更改 tfilename
和 xfilename
的名称,以便整个代码更有意义。
此外,我不确定为什么您的代码使用单个参数调用 os.path.join
。它没有任何作用。