Làm cách nào để lưu tệp vào một vị trí cụ thể python?

Một tác vụ tự động hóa rất phổ biến mà chúng tôi giải quyết bằng Python là tạo các tệp văn bản cũng như đọc, ghi và lưu dữ liệu vào các tệp đó

Dung dịch

Python cung cấp các hàm tích hợp rất mạnh mẽ để tạo và thao tác với các tệp văn bản. Trong hướng dẫn ngắn này, chúng ta sẽ đi qua một số khả năng chính

  • Tạo một tệp văn bản mới từ đầu trong thư mục hiện tại
  • Tạo một tệp văn bản mới trong một thư mục khác
  • Thêm văn bản vào tệp văn bản hiện có
  • Viết từng dòng văn bản vào một tệp

Hãy xem xét một vài ví dụ

Tạo một tệp bằng Python với open

Để tạo tệp văn bản trong Python, chúng tôi thường sử dụng khối With và hàm open[“filename”, “accessmode”]. Đoạn mã dưới đây sẽ tạo một tệp có tên 'mydocument. txt’ với quyền truy cập ghi. Tệp này sẽ được tạo trong thư mục lưu tập lệnh Python của bạn

Mã số

with open["mydocument.txt", mode = "w"] as f:
    f.write["This text is written with Python"]

Ghi chú. khi mở tệp ở chế độ Ghi ['w'], nội dung tệp hiện tại sẽ bị cắt bớt. Sử dụng chế độ này cẩn thận

Tạo một tệp trong một đường dẫn thư mục khác

Để tạo một tệp theo một đường dẫn khác với thư mục làm việc của chúng tôi, chúng tôi sẽ phải thực hiện một thay đổi nhỏ trong cách chúng tôi gọi hàm mở

Trước tiên, chúng tôi sẽ đảm bảo rằng đường dẫn thư mục tệp có sẵn trong hệ điều hành của bạn. Sau đó, chúng tôi sẽ sử dụng ngữ cảnh With để mở tệp ở chế độ truy cập Ghi và nối một chuỗi vào tệp. Hãy xem đoạn trích – Lưu ý cách sử dụng thư viện pathlib [có sẵn từ Python 3. 4] giúp đơn giản hóa việc xử lý đối tượng tệp trong Python

Mã số

from pathlib import Path

# replace with your preferred directory path
dir_path = Path['C:\Temp']
file_name = "mydocument.txt"
file_path = dir_path.joinpath[file_name]

# check that directory exists
if dir_path.is_dir[]:
    with open[file_path, "w"] as f:
        f.write["This text is written with Python."]
        print['File was created.']
else:
    print["Directory doesn\'t exist."]

Một triển khai tương tự bằng cách sử dụng mô-đun os thư viện tiêu chuẩn Python [cũng có sẵn trước Python 3. 4]

import os

# replace with your preferred directory and file path
dir_path = r"C:\Temp"
file_name = "mydocument.txt"
file_path = os.path.join[dir_path, file_name]
# check if the directory exists
if os.path.exists [dir_path]:
    # create the file
    with open[file_path, "w"] as f:
        f.write["This text is written with Python."]
        print['File was created.']
else:
    print["Directory doesn\'t exist."]

Tạo tệp nếu không tồn tại với Python

Dưới đây là phiên bản mã mạnh mẽ hơn một chút, trong đó trước tiên chúng tôi sẽ kiểm tra xem đường dẫn thư mục và tệp có tồn tại hay không trước khi đọc và ghi vào tệp

from pathlib import Path

dir_path = Path['C:\Temp']
file_name = 'mydocument.txt'
file_path = dir_path.joinpath[file_name]

# check if directory exists
if dir_path.is_dir[]:

    # check if file already exists
    if file_path.is_file[]:
        print['File already exists.']
    else:
        with open [dir_path.joinpath[file_name],'w'] as f:  
            f.write["This text is written with Python."]
            print['File was created.']
else:
    print['Directory doesn\'t exist, please create the directory first.']

Nối văn bản vào một tệp hiện có

Như đã đề cập trước đó, các tệp chúng tôi đã tạo bằng “w” làm chế độ truy cập sẽ ghi đè lên tất cả nội dung tệp hiện có. Do đó, chúng tôi thường mở tệp ở chế độ chắp thêm [“a”]. Nối thêm sẽ chèn văn bản của bạn sau nội dung hiện có của tệp văn bản của bạn. Hãy xem nhanh

Mã số

#write and save

with open[r"C:\Temp\mydocument.txt", "w"] as f:
    f.write["This text is written with Python."]

#read

with open[r"C:\Temp\mydocument.txt", "r"] as f: 
   print["New text:\n",f.read[]]

#append

with open[r"C:\Temp\mydocument.txt", "a"] as f:
    f.write["\n This text was added using Append."]


#read the appended text

with open[r"C:\Temp\mydocument.txt", "r"] as f:
    print["Append:\n",f.read[]]

đầu ra

New text:
This text is written with Python.
Append:
This text is written with Python.
This text was added using Append.

Viết từng dòng tệp Python

Bây giờ, hãy giả sử rằng bạn có một danh sách Python mà bạn muốn ghi vào tệp theo từng dòng

Phương thức writelines[] của đối tượng tệp mong đợi một lần lặp [chẳng hạn như danh sách của chúng tôi]. Tuy nhiên, khi được gọi writelines[] sẽ nối các phần tử danh sách và ghi chúng vào tệp. Nếu bạn cần viết từng dòng một, bạn có thể lặp qua các thành phần danh sách, nối thêm ký tự thoát \n cho từng thành phần và ghi chúng vào tệp như minh họa trong đoạn trích bên dưới

findude
Chưa bị nổ tung

Bài viết. 64

Chủ đề. 26

Đã tham gia. Tháng 3 năm 2020

Danh tiếng. 0

#1

23-04-2020, 11. 39 giờ sáng

Xin chào,

Tôi đang sử dụng mã này để tạo tệp có tên người dùng làm tiêu đề và mật khẩu bên trong tệp.

user_details = open[new_username_1 + ".txt","w"] #creates a new file called "username".txt
user_details.write[new_password_1] #writes in the file what the users password is
user_details.close[] #saves and closes the file
làm thế nào tôi có được thứ này để lưu vào một thư mục cụ thể mà tôi đã tạo

atm nó lưu vào.

E. \Work\School\Computer Science\Python\Code

Tôi muốn nó lưu vào.

E. \Work\School\Computer Science\Python\Code\User Info

xin cảm ơn

Đáp lại

Tìm thấy

Đáp lại

anbu23
Bánh xốp mỏng

Bài viết. 95

Chủ đề. 0

Đã tham gia. Tháng 4 năm 2020

Danh tiếng. 19

#2

23-04-2020, 11. 56 giờ sáng

user_details = open['E:\Work\School\Computer Science\Python\Code\User Info\' + new_username_1 + ".txt","w"] 

Đáp lại

Tìm thấy

Đáp lại

findude
Chưa bị nổ tung

Bài viết. 64

Chủ đề. 26

Đã tham gia. Tháng 3 năm 2020

Danh tiếng. 0

#3

23-04-2020, 12. 17 giờ chiều

cổ vũ người bạn đời

Đáp lại

Tìm thấy

Đáp lại

quả óc chó

Bài viết. 7,816

Chủ đề. 145

Đã tham gia. Tháng 9 năm 2016

Danh tiếng. 571

#4

23-04-2020, 12. 24 giờ chiều

thật kỳ lạ khi sử dụng dấu gạch chéo ngược đơn [không thoát, không phải trong chuỗi thô] không gây ra lỗi cho bạn đối với e. g.

user_details = open['E:\Work\School\Computer Science\Python\Code\User Info\' + new_username_1 + ".txt","w"] 
0 một phần của con đường.
______9'\u' là một trong những chuỗi thoát.

Nếu bạn không thể giải thích điều đó cho một đứa trẻ sáu tuổi, thì chính bạn cũng không hiểu , Albert Einstein
Cách đặt câu hỏi . liên kết và một liên kết khác
Tạo ví dụ về MCV
Gỡ lỗi các chương trình nhỏ

Đáp lại

Tìm thấy

Đáp lại

findude
Chưa bị nổ tung

Bài viết. 64

Chủ đề. 26

Đã tham gia. Tháng 3 năm 2020

Danh tiếng. 0

#5

23-04-2020, 12. 35 PM [Bài đăng này đã được sửa đổi lần cuối. 23-04-2020, 12. 36 PM bởi findndude. ]

khi tôi đặt mã của bạn vào, toàn bộ nội dung vẫn ở dạng chuỗi, đây có phải là mã của nó không?
nó báo lỗi cho tôi

[error
EOL while scanning literal
[/error]

Đáp lại

Tìm thấy

Đáp lại

quả óc chó

Bài viết. 7,816

Chủ đề. 145

Đã tham gia. Tháng 9 năm 2016

Danh tiếng. 571

#6

23-04-2020, 12. 43 PM [Bài đăng này đã được sửa đổi lần cuối. 23-04-2020, 12. 43 PM bởi buran. ]

khi làm việc với các đường dẫn trong Windows nơi dấu phân cách là dấu gạch chéo ngược [thông thường], bạn có ba lựa chọn thay thế.
thoát dấu gạch chéo ngược.
_______10sử dụng chuỗi thô

from pathlib import Path

# replace with your preferred directory path
dir_path = Path['C:\Temp']
file_name = "mydocument.txt"
file_path = dir_path.joinpath[file_name]

# check that directory exists
if dir_path.is_dir[]:
    with open[file_path, "w"] as f:
        f.write["This text is written with Python."]
        print['File was created.']
else:
    print["Directory doesn\'t exist."]
1hoặc sử dụng dấu gạch chéo lên phía trước
from pathlib import Path

# replace with your preferred directory path
dir_path = Path['C:\Temp']
file_name = "mydocument.txt"
file_path = dir_path.joinpath[file_name]

# check that directory exists
if dir_path.is_dir[]:
    with open[file_path, "w"] as f:
        f.write["This text is written with Python."]
        print['File was created.']
else:
    print["Directory doesn\'t exist."]
2sử dụng dấu gạch chéo ngược đơn lẻ sẽ gây ra lỗi nếu dấu gạch chéo ngược được theo sau bởi một số ký tự nhất định kết hợp với nhau . Trong trường hợp của bạn,
user_details = open['E:\Work\School\Computer Science\Python\Code\User Info\' + new_username_1 + ".txt","w"] 
1 là sự kết hợp như vậy.

Nếu bạn không thể giải thích điều đó cho một đứa trẻ sáu tuổi, thì chính bạn cũng không hiểu , Albert Einstein
Cách đặt câu hỏi . liên kết và một liên kết khác
Tạo ví dụ về MCV
Gỡ lỗi các chương trình nhỏ

Đáp lại

Tìm thấy

Đáp lại

findude
Chưa bị nổ tung

Bài viết. 64

Chủ đề. 26

Đã tham gia. Tháng 3 năm 2020

Danh tiếng. 0

#7

23-04-2020, 12. 43 PM [Bài đăng này đã được sửa đổi lần cuối. 23-04-2020, 12. 54 PM bởi findndude. ]

cảm ơn, tôi sẽ thử nó với một dấu gạch chéo lên trước
tôi sẽ triển khai ti này như thế nào khi kiểm tra đường dẫn e. g

from pathlib import Path

# replace with your preferred directory path
dir_path = Path['C:\Temp']
file_name = "mydocument.txt"
file_path = dir_path.joinpath[file_name]

# check that directory exists
if dir_path.is_dir[]:
    with open[file_path, "w"] as f:
        f.write["This text is written with Python."]
        print['File was created.']
else:
    print["Directory doesn\'t exist."]
4Tôi muốn kiểm tra thư mục thông tin người dùng
đồng thời tôi sẽ triển khai nó bằng cách xóa hệ điều hành như thế nào.

____15lại trong thư mục thông tin người dùng

"Chỉ những người nhàm chán mới chán"

Đáp lại

Tìm thấy

Đáp lại

findude
Chưa bị nổ tung

Bài viết. 64

Chủ đề. 26

Đã tham gia. Tháng 3 năm 2020

Danh tiếng. 0

#số 8

23-04-2020, 01. 56 CH

tôi có các đoạn mã này ở đây.


______16and

from pathlib import Path

# replace with your preferred directory path
dir_path = Path['C:\Temp']
file_name = "mydocument.txt"
file_path = dir_path.joinpath[file_name]

# check that directory exists
if dir_path.is_dir[]:
    with open[file_path, "w"] as f:
        f.write["This text is written with Python."]
        print['File was created.']
else:
    print["Directory doesn\'t exist."]
7Tôi muốn kiểm tra đường dẫn tệp 'E. /Work/School/Computer Science/Python/Code/User Info/' [Tôi đã sử dụng dấu gạch chéo lên]

Tôi đang kiểm tra xem liệu nó có tồn tại trong đoạn mã đầu tiên hay không

in the second bit, I want to delete the file from the path that I looked in previously [E:/Work/School/Computer Science/Python/Code/User Info/]

cảm ơn

"Chỉ những người nhàm chán mới chán"

Đáp lại

Tìm thấy

Đáp lại

quả óc chó

Bài viết. 7,816

Chủ đề. 145

Đã tham gia. Tháng 9 năm 2016

Danh tiếng. 571

#9

23-04-2020, 02. 00 giờ chiều

những gì bạn đề xuất dễ dẫn đến tình trạng tranh đua - tôi. e. tệp có thể tồn tại khi bạn thực hiện kiểm tra và sau đó bị xóa bởi một quy trình khác giữa kiểm tra và nỗ lực xóa tệp của bạn.
vì vậy, không cần kiểm tra, hãy bọc mã xóa tệp trong thử/ngoại trừ và phát hiện lỗi nếu tệp không tồn tại ngay từ đầu

Nếu bạn không thể giải thích điều đó cho một đứa trẻ sáu tuổi, thì chính bạn cũng không hiểu , Albert Einstein
Cách đặt câu hỏi . liên kết và một liên kết khác
Tạo ví dụ về MCV
Gỡ lỗi các chương trình nhỏ

Đáp lại

Tìm thấy

Đáp lại

findude
Chưa bị nổ tung

Bài viết. 64

Chủ đề. 26

Đã tham gia. Tháng 3 năm 2020

Danh tiếng. 0

#10

23-04-2020, 02. 17 giờ chiều

tôi không hiểu không có gì khác để xóa nó chỉ có mã đó.

mã để xóa một tệp khỏi E là gì. /Công việc/Trường học/Khoa học máy tính/Python/Mã/Thông tin người dùng/

"Chỉ những người nhàm chán mới chán"

Đáp lại

Tìm thấy

Đáp lại

Chủ Đề