我在一個名為以下方式的檔案夾中有多個 .csv 檔案:
parts-1.csv
parts-2.csv
.
.
parts-104.csv
(每個檔案只包含一列)
我試圖在 Python 中獲取以下翻譯函式來遍歷每個檔案,翻譯并將它們保存為新檔案。
data = pd.read_csv("parts4.csv")
translator = Translator()
translations = {}
for column in data.columns:
unique = data[column].unique()
for element in unique:
translations[element] = translator.translate(element).text
for i in translations.items():
print(I)
我還嘗試將翻譯后的檔案保存為以下格式:
parts-1-translated.csv
.
.
parts-104-translated.csv
uj5u.com熱心網友回復:
import glob, os
for filename in glob.iglob('./**', recursive=True):
if os.path.isfile(filename): # filter dirs
print(filename)
從python >= 3.5 開始,您可以使用**in glob 來獲取所有子目錄。
這將輸出如下內容:
./records/parts-1.csv
./records/parts-2.csv
uj5u.com熱心網友回復:
我會推薦你??閱讀pathlib.Path的檔案
例子:
from pathlib import Path
BASE_PATH = Path(...)
RECORDS_PATH = BASE_PATH / "records"
for file in RECORDS_PATH.iterdir():
if not file.is_file():
continue
data = file.read_text() # or read_bytes()
# Translate things
translated_file = file.with_name(f"{file.stem}-translasted.csv")
translated_file.write(data)
uj5u.com熱心網友回復:
一個快速的解決方案,因為您知道有多少檔案,如下所示 - 您只需遍歷檔案的名稱以讀取它,然后按照您的建議執行翻譯。類似地,可以通過在回圈中稍微更改檔案名來生成輸出。
filenames = ["parts-" str(i) for i in range(1,105)] #creating filename
for file in filenames:
input_filename = file ".csv" #adding extension to import
data = pd.read_csv(input_filename)
#your code to translate:
translations = {}
for column in data.columns:
unique = data[column].unique()
for element in unique:
translations[element] = translator.translate(element).text
#creating corresponding output files
data.replace(translations, inplace = True)
output_filename = file "-translated.csv"
data.to_csv(output_filename)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/473818.html
