Skip to content Skip to sidebar Skip to footer

Open All Files In Different Directory Python

I need to open a file from a different directory without using it's path while staying in the current directory. When I execute the below code: for file in os.listdir(sub_dir):

Solution 1:

os.listdir() lists only the filename without a path. Prepend these with sub_dir again:

for filename inos.listdir(sub_dir):
    f = open(os.path.join(sub_dir, filename), "r")

If all you are doing is loop over the lines from the file, just loop over the file itself; using with makes sure that the file is closed for you when done too. Last but not least, str.replace()returns the new string value, not change the value itself, so you need to store that return value:

for filename in os.listdir(sub_dir):
    with open(os.path.join(sub_dir, filename), "r") as f:
        for line in f:
            line = line.replace("dst=", ", ")
            line = line.replace("proto=", ", ")
            line = line.replace("dpt=", ", ")

Solution 2:

You must give the full path if those files are not in the current directory:

f = open( os.path.join(sub_dir, file) )

I would not use file as a variable name, maybe filename, since this is used to create a file object in Python.

Solution 3:

Code to copy files using shutil

import shutil
import os

source_dir = "D:\\StackOverFlow\\datasets"
dest_dir = "D:\\StackOverFlow\\test_datasets"
files = os.listdir("D:\\StackOverFlow\\datasets")

ifnotos.path.exists(dest_dir):
    os.makedirs(dest_dir)

for filename in files:
    if file.endswith(".txt"):
        shutil.copy(os.path.join(source_dir, filename), dest_dir)

printos.listdir(dest_dir)

Post a Comment for "Open All Files In Different Directory Python"