Hướng dẫn how do i save a file with a filename in python? - làm cách nào để lưu tệp có tên tệp trong python?

Tôi có một thư mục với nhiều tệp và tôi muốn lưu tên của các tệp này trong tài liệu TXT. Tôi sẽ làm điều đó với một vài thư mục vì vậy tôi muốn thêm các tên bên dưới nhưng với mã được tạo, tôi xóa các tệp đã được lưu bởi các tệp mới.

Đây là mã của tôi:

os.chdir("/Users/Desktop/Data")

a = open("Names_Genomes.txt", "w")

for path, subdirs, files in os.walk(r'/Users/Desktop/control/input/end'):
    for filename in files:
        f = os.path.join(path, filename)
        a.write(str(f) + os.linesep) 

Và tôi cũng lưu thư mục nhưng tôi không muốn điều này.

/Users/Desktop/control/input/end/SRR3160442_bin.7.fna
/Users/Desktop/control/input/end/SRR1039533_bin.14.fna
/Users/Desktop/control/input/end/SRR6257496_bin.3.fna
/Users/Desktop/control/input/end/ERR1305905_bin.7.fna

Bất cứ ai có thể cho tôi biết những gì tôi đang làm sai?

Hỏi ngày 5 tháng 4 năm 2020 lúc 8:51Apr 5, 2020 at 8:51

Hướng dẫn how do i save a file with a filename in python? - làm cách nào để lưu tệp có tên tệp trong python?

2

Nếu bạn chỉ muốn lưu tên tệp không phải là đường dẫn tệp tuyệt đối, bạn phải xóa dòng:

f = os.path.join(path, filename)

Mã cuối cùng phải giống như:

os.chdir("/Users/Desktop/Data")

a = open("Names_Genomes.txt", "w")

for path, subdirs, files in os.walk(r'/Users/Desktop/control/input/end'):
    for filename in files:
        a.write(str(filename) + os.linesep)

Đã trả lời ngày 5 tháng 4 năm 2020 lúc 9:17Apr 5, 2020 at 9:17

Để chỉ viết tên tệp, bạn nên xóa tham gia vào đường dẫn tuyệt đối. Chỉ làm như sau:

os.chdir("/Users/Desktop/Data")

a = open("Names_Genomes.txt", "a")

for path, subdirs, files in os.walk(r'/Users/Desktop/control/input/end'):
    for filename in files:
        a.write(filename + os.linesep) 

Hãy nhớ rằng tôi đã thay đổi chế độ trong lệnh

/Users/Desktop/control/input/end/SRR3160442_bin.7.fna
/Users/Desktop/control/input/end/SRR1039533_bin.14.fna
/Users/Desktop/control/input/end/SRR6257496_bin.3.fna
/Users/Desktop/control/input/end/ERR1305905_bin.7.fna
3 thành
/Users/Desktop/control/input/end/SRR3160442_bin.7.fna
/Users/Desktop/control/input/end/SRR1039533_bin.14.fna
/Users/Desktop/control/input/end/SRR6257496_bin.3.fna
/Users/Desktop/control/input/end/ERR1305905_bin.7.fna
4 thay vì 'W' sẽ không ghi đè dữ liệu của bạn nhưng sẽ nối nó.

Đã trả lời ngày 5 tháng 4 năm 2020 lúc 9:31Apr 5, 2020 at 9:31

GabiogabioGabio

8,5773 huy hiệu vàng9 Huy hiệu bạc27 Huy hiệu đồng3 gold badges9 silver badges27 bronze badges

Lưu tên tệp từ 2 thư mục, cạnh nhau trong tệp TXT với Python

Nhập hệ điều hành

path="/content/HRNet-Semantic-Segmentation/imgs/images"  
path2 ="/content/HRNet-Semantic-Segmentation/imgs/masks"

a = open("/content/train.txt", "w")
    
    for path, subdirs, files in os.walk(path):
        for filename in files:
            f = os.path.join(path, filename)
    
        for filename2 in files:
            f2 = os.path.join(path2, filename2)
    
            a.write(str(f+" "+f2) + os.linesep) 

output:

/content/imgs/images/frame_7450.jpg /content/imgs/masks/frame_7150.jpg
/content/imgs/images/frame_7450.jpg /content/imgs/masks/frame_13645.jpg
/content/imgs/images/frame_7450.jpg /content/imgs/masks/frame_4635.jpg
/content/imgs/images/frame_7450.jpg /content/imgs/masks/frame_8510.jpg
/content/imgs/images/frame_7450.jpg /content/imgs/masks/frame_5720.jpg
/content/imgs/images/frame_7450.jpg /content/imgs/masks/frame_13820.jpg
/content/imgs/images/frame_7450.jpg /content/imgs/masks/frame_7675.jpg
/content/imgs/images/frame_7450.jpg /content/imgs/masks/frame_4765.jpg
/content/imgs/images/frame_7450.jpg /content/imgs/masks/frame_7715.jpg

Đã trả lời ngày 5 tháng 3 năm 2021 lúc 6:38Mar 5, 2021 at 6:38

Hướng dẫn how do i save a file with a filename in python? - làm cách nào để lưu tệp có tên tệp trong python?

Ví dụ 1: Sử dụng mô -đun HĐH

import os

# file name with extension
file_name = os.path.basename('/root/file.ext')

# file name without extension
print(os.path.splitext(file_name)[0])

Đầu ra

file

/Users/Desktop/control/input/end/SRR3160442_bin.7.fna
/Users/Desktop/control/input/end/SRR1039533_bin.14.fna
/Users/Desktop/control/input/end/SRR6257496_bin.3.fna
/Users/Desktop/control/input/end/ERR1305905_bin.7.fna
5 Cho tên của tệp/thư mục cuối cùng của đường dẫn, trong khi
/Users/Desktop/control/input/end/SRR3160442_bin.7.fna
/Users/Desktop/control/input/end/SRR1039533_bin.14.fna
/Users/Desktop/control/input/end/SRR6257496_bin.3.fna
/Users/Desktop/control/input/end/ERR1305905_bin.7.fna
6 chia tên tệp thành tên tệp và phần mở rộng.

import os

print(os.path.splitext(file_name))

Đầu ra

/Users/Desktop/control/input/end/SRR3160442_bin.7.fna
/Users/Desktop/control/input/end/SRR1039533_bin.14.fna
/Users/Desktop/control/input/end/SRR6257496_bin.3.fna
/Users/Desktop/control/input/end/ERR1305905_bin.7.fna
0

/Users/Desktop/control/input/end/SRR3160442_bin.7.fna /Users/Desktop/control/input/end/SRR1039533_bin.14.fna /Users/Desktop/control/input/end/SRR6257496_bin.3.fna /Users/Desktop/control/input/end/ERR1305905_bin.7.fna 5 Cho tên của tệp/thư mục cuối cùng của đường dẫn, trong khi /Users/Desktop/control/input/end/SRR3160442_bin.7.fna /Users/Desktop/control/input/end/SRR1039533_bin.14.fna /Users/Desktop/control/input/end/SRR6257496_bin.3.fna /Users/Desktop/control/input/end/ERR1305905_bin.7.fna 6 chia tên tệp thành tên tệp và phần mở rộng.

/Users/Desktop/control/input/end/SRR3160442_bin.7.fna
/Users/Desktop/control/input/end/SRR1039533_bin.14.fna
/Users/Desktop/control/input/end/SRR6257496_bin.3.fna
/Users/Desktop/control/input/end/ERR1305905_bin.7.fna
1

Đầu ra

file

/Users/Desktop/control/input/end/SRR3160442_bin.7.fna
/Users/Desktop/control/input/end/SRR1039533_bin.14.fna
/Users/Desktop/control/input/end/SRR6257496_bin.3.fna
/Users/Desktop/control/input/end/ERR1305905_bin.7.fna
5 Cho tên của tệp/thư mục cuối cùng của đường dẫn, trong khi
/Users/Desktop/control/input/end/SRR3160442_bin.7.fna
/Users/Desktop/control/input/end/SRR1039533_bin.14.fna
/Users/Desktop/control/input/end/SRR6257496_bin.3.fna
/Users/Desktop/control/input/end/ERR1305905_bin.7.fna
6 chia tên tệp thành tên tệp và phần mở rộng.

Ví dụ 2: Sử dụng mô -đun đường dẫn