Python 如何在不同的目录中输出?

Python 如何在不同的目录中输出?,python,Python,我有这个: from os import path base_path = "C:\\texts\\*.txt" for file in files: with open (file) as in_file, open(path.join(base_path,"%s_tokenized.txt" % file), "w") as out_file: data = in_file.readlines() for line in data:

我有这个:

from os import path
base_path = "C:\\texts\\*.txt"
for file in files:
   with open (file) as in_file, open(path.join(base_path,"%s_tokenized.txt" % file),   "w") as out_file:
       data = in_file.readlines()
       for line in data:
           words = line.split()
           str1 = ','.join(words)
           out_file.write(str1)
           out_file.write("\n")
它在读取的同一目录中生成标记化文件。如何将这些输出文件输出到不同的目录中,例如
“C:\\text\\Tokenized”


我知道有一些方法可以在生成新文件后将其移动到其他目录,但我想知道的是,如果在上述代码中生成新文件的同时还可以将其输出到其他目录?

这就是我如何输出到任意目录中的文件的方法:

dir_name = "../some_dir"
if not os.path.exists(dir_name) : os.makedirs(dir_name)
out_file_name = dir_name + '/out.txt'
out_file = open( out_file_name, 'w')  
编辑:

file_name = "{0}_tokenized.txt".format(something_from_tokenizing)
if not os.path.exists(dir_name) : os.makedirs(dir_name)
out_file_name = dir_name + file_name
编辑:

file_name = "{0}_tokenized.txt".format(something_from_tokenizing)
if not os.path.exists(dir_name) : os.makedirs(dir_name)
out_file_name = dir_name + file_name
我只是试过,为我工作。您只需要两个路径,一个用于源目录,另一个用于目标目录。希望这有帮助

import os
from os import path
f1 = open("in.txt")
f2 = open("out.txt")
files = ["in.txt", "out.txt"]
base_path = "."
dir_name = "./some_dir"
if not os.path.exists(dir_name) : os.makedirs(dir_name)
for file in files:
   with open (file) as in_file, open(path.join(dir_name,"%s_tokenized.txt" % file),   "w") as out_file:
       data = in_file.readlines()
       for line in data:
           words = line.split()
           str1 = ','.join(words)
           out_file.write(str1)
           out_file.write("\n")

这就是你想要的吗:

import os
import glob
source_pattern = 'c:/texts/*.txt'
output_directory = 'c:/texts/tokenized'

# Iterate over files matching source_pattern
for input_file in glob.glob(source_pattern):

    # build the output filename
    base,ext = os.path.splitext(os.path.basename(input_file))
    output_file = os.path.join(output_directory,base + '_tokenized' + ext)

    with open(input_file) as in_file, open(output_file,'w') as out_file:
        for line in in_file:
            out_file.write(','.join(line.split()) + '\n')

顺便说一句,没有必要使用
readlines
。只需直接迭代输入文件:
对于\u文件中的行:
。。。。使用不同的基本路径?@FMc我需要先列出一个列表,然后拆分每行的单词separately@IgnacioVazquez Abrams这样它就可以从哪里读取文件了?@MACEE不,你不需要先列一个列表(在
数据中
);你可以跳过那部分。打开的文件可以直接逐行迭代。试试看。:)如果它是一个文件,它是确定的,但我正在处理一系列的文本文件在一起。我从一个目录中读取并标记它们,然后在同一目录中保存具有相同名称的标记化文件,每个文件+标记化.txt都位于同一目录中…我不想这样做,而是想直接将它们写入另一个目录您是否有命名输出文件和/或目录的标准?标记化文件与源文件+标记化.txt
($file\u name)具有相同的名称_tokenized.txt
hmm我对命名标记化文件没有问题。。我做到了
path.join(基本路径,“%s\u tokenized.txt”%file)
。我的问题是上面的代码在源文件所在的同一目录中生成标记化文件。我想在不同的目录下输出(写入)新文件我想困难的是我同时处理了许多文件,而且我使用源文件的名称来命名输出文件!