簡體   English   中英

將一項寫入 Python 中的 a.csv 文件的最有效方法是什么?

[英]What is the most efficient way to write one item to a .csv file in Python?

我正在編寫一個腳本,該腳本應該檢查兩個目錄,一個源目錄和一個目標目錄,然后自動將源目錄中的所有新文件夾復制到目標目錄中,然后將復制的文件夾的名稱復制到文本文件或 .csv 文件,將來會檢查這些文件以避免重復,因為目標目錄中的文件夾將被重命名。

我假設 csv 文件在存儲大量單獨的小字符串方面優於文本文件,但在 csv 模塊中 python 似乎只有一種方法可以將可迭代對象寫入文件。 我一次只會在每行中寫一個字符串。 將這個字符串存儲在列表中是否比使用 csv.writerow 更有意義,或者有更好的方法嗎?

謝謝

在 python 中,CSV 編寫器會將單個列表中的每個值寫為一行。 執行此操作的最佳方法是將所有項目存儲在列表列表中。 例如

rows = [ ['Nikhil', 'COE', '2', '9.0'],
         ['Sanchit', 'COE', '2', '9.1'],
         ['Aditya', 'IT', '2', '9.3'],
         ['Sagar', 'SE', '1', '9.5'],
         ['Prateek', 'MCE', '3', '7.8'],
         ['Sahil', 'EP', '2', '9.1']]

此處的每個列表將在 csv 中單獨一行。

另一種方法是,如果您打算將所有內容都變成一個字符串,則使用換行符分隔每一行。

例如:

rows = "value1,value2,value3\n newRow1,newRow2,newRow3"

無論哪種方式都會起作用。

我參考了這個頁面的例子:

https://www.geeksforgeeks.org/working-csv-files-python/

有不同的編程語言,例如 Python、Java 和 C#,用於處理地理空間數據的大文件。 但是在 Python 中寫入 CSV 個文件的最佳方式是因為您可以在一秒鍾或一分鍾內輕松提取數百萬行,並且您可以讀取、寫入或通過 Python 編程執行許多操作。

但如果您不是程序員,那么您可以借助任何應用軟件,例如EmEditor或任何軟件。

<---如何在應用軟件上寫字---> CSV 編輯

打開 CSV 編輯器。 從查詢工具菜單打開編輯器。

過濾和排序數據。 從列彈出菜單中,您可以設置過濾器或對數據進行排序。

編輯數據。 雙擊任何單元格以編輯其內容。

保存格式。 使用“文件/另存為”以給定的文件和格式保存編輯后的 CSV。

你可以嘗試這樣的事情,

import pandas as pd
import os
import shutil

base_path = "C:/Users/Dell/Desktop/"
from_folders = ["New folder (2)/", "New folder/"]
to_folder = "Target/"

from_paths = list(map(lambda folder_name:base_path + folder_name, from_folders))
files_list = list(map(lambda path:[path + p for p in os.listdir(path)], from_paths))
target_path = base_path + to_folder

[list(map(lambda path:shutil.copy(path, target_path), paths)) for paths in files_list]

pd.DataFrame(from_paths, columns = ["From Paths"]).to_csv(f"{base_path}From Paths.csv")

我認為如果您只是根據需要更改base_pathfrom_foldersto_folder ,代碼就可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM