Hướng dẫn how to create dynamic file name in python - cách tạo tên tệp động trong python

Tôi đang phải đối mặt với một vấn đề trong việc mã hóa phần quản lý tệp trong thuật toán của mình.

Mục đích của trình quản lý tệp của tôi là lấy một tệp nguồn, sau đó đọc từng dòng và chia từng dòng trong một tệp mới theo các bộ lọc.

Dữ liệu được phân tách bằng bảng

open['/usr/local/resultat/file_1', 'w']    # here 1 is linked to the nbr_RB[i]
open['/usr/local/resultat/file_2', 'w']
.
.
.
open['/usr/local/resultat/file_nbr_RB[i]', 'w']  
0.

Bộ lọc bao gồm thu thập tất cả các dòng có cùng tham số 4 [bạn có thể nói rằng nó đang đặt hàng chúng].

Vấn đề của tôi là tôi muốn có tên tệp động theo các tham số đó, đó là một số nguyên. Vì vậy, tệp chính sẽ được lấp đầy với một phần của thuật toán như thế này:

Logfile.write["%s\t %s\t %s\t %s\t %s\t %s\n" % [count, BSid, UEid, nbr_RB, Metric,]]

open['/usr/local/resultat/file_1', 'w']    # here 1 is linked to the nbr_RB[i]
open['/usr/local/resultat/file_2', 'w']
.
.
.
open['/usr/local/resultat/file_nbr_RB[i]', 'w']  
1 sẽ là các tham số bộ lọc của tôi, nó là một tập hợp ngẫu nhiên của số nguyên dao động từ 1 đến 100.

Điều tôi muốn làm là tự động hóa mã này:

open['/usr/local/resultat/file_1', 'w']    # here 1 is linked to the nbr_RB[i]
open['/usr/local/resultat/file_2', 'w']
.
.
.
open['/usr/local/resultat/file_nbr_RB[i]', 'w']  

Vì vậy, mỗi lần sẽ có

open['/usr/local/resultat/file_1', 'w']    # here 1 is linked to the nbr_RB[i]
open['/usr/local/resultat/file_2', 'w']
.
.
.
open['/usr/local/resultat/file_nbr_RB[i]', 'w']  
2 trong tên tệp, tôi không viết 100 dòng.

Và khi tôi sẽ áp dụng bộ lọc:

ligne = Logfile.split[“\n”]
par = ligne.split[“\t”]

if par [3] = nbr_RB[1]:
    file_nbrRB[1].write [“%s \n” % [ligne]]

elif  par [3] = nbr_RB[4]:
    file_nbrRB[4].write [“%s \n” % [ligne]]
.
.
.
elif par [3] = nbr_RB[i]:
    file_nbrRB[i].write [“%s \n” % [ligne]]

Tôi đã xem xét một số giải pháp và tìm thấy điều này: Đối với các phiên bản Python trước 2.6, hãy sử dụng toán tử định dạng chuỗi %:

filename = "ME%d.txt" % i

Đối với 2.6 trở lên, hãy sử dụng phương thức str.format []:

filename = "ME{0}.txt".format[i]

Mặc dù ví dụ đầu tiên vẫn hoạt động trong 2.6, nhưng mẫu thứ hai được ưa thích. Nếu bạn có nhiều hơn 10 tệp để đặt tên theo cách này, bạn có thể muốn thêm các số 0 hàng đầu để các tệp được đặt hàng chính xác trong danh sách thư mục:

filename = "ME%02d.txt" % i
filename = "ME{0:02d}.txt".format[i]

Điều này sẽ tạo tên tệp như ME00.TXT cho ME99.TXT. Để biết thêm các chữ số, hãy thay thế 2 trong các ví dụ có số cao hơn [ví dụ: ME {0: 03D} .txt]. Và :

import os, sys 

path = "c:/temp" 
for filename in ["chas.txt", "dave.txt"]: 
f = open [os.path.join [path, filename]] 
print filename 
print f.read [] 
print 
f.close [] 

EDIT: Tôi nghĩ rằng tôi thực sự đã giải thích vấn đề của mình, đây là những gì tôi đã mã hóa cho tệp nhật ký đầu tiên, trước khi điều trị nào:

logfile= open['/usr/local/Python-3.3.0/my_tests/fichier_log/logfile_%s_%s.txt' %c %z , 'a']

Và đây là lỗi:

Traceback [most recent call last]:
  File "/usr/local/Python-3.3.0/my_tests/log_files.py", line 181, in 
    main[]
  File "/usr/local/Python-3.3.0/my_tests/log_files.py", line 167, in main
    logfile= open['/usr/local/Python-3.3.0/my_tests/fichier_log/logfile_%s_%s.txt' %c %z , 'a']
TypeError: not enough arguments for format string

Hello,

myfile.write ['được viết bằng python \ n'].

# Đóng tệp ..

Tên tệp động là gì?

Hi,

Nếu "tải lên" trong ngữ cảnh này có nghĩa là "tải lên trong bộ dữ liệu tải lên

import dataiku
ds = dataiku.Dataset['the_name_of_the_dataset']
file_paths = [p['path'] for p in ds.get_files_info[]['globalPaths']]

và File_Paths sẽ là danh sách '/'-có tiền tố của các tên tệp trong tập dữ liệu & nbsp;

Chaps,

Tôi đang cố gắng mở một tệp bằng Open [] nhưng tên của tệp được tạo ra dưới dạng biến, nhưng cũng có một phần của đường dẫn tĩnh. Chẳng hạn, tệp có thể được gọi là 'Dave' và sẽ luôn ở trong '/my/files/ở đây/'.
dynamically as a variable, but also has part of a static path. For instance,
the file may be called 'dave' and will always be in '/my/files/here/'.

Bây giờ tôi đã thử một vài kết hợp để làm cho nó hoạt động, chẳng hạn như.

Path = '/my/files/ở đây/ % s' % [tên]

Mở [đường dẫn, 'r']]

Nhưng điều đó không hoạt động, có ai có thể khai sáng cho tôi cách tốt nhất để làm điều này không?

Thanks,

Cướp

-------------- Phần tiếp theo -------------- Một tệp đính kèm HTML đã bị chà ... url:
An HTML attachment was scrubbed...
URL:

Đăng bởi Robert Rawlins - Hãy nghĩ rằng Bluei'm đang cố gắng mở một tệp bằng Open [] nhưng tên của tệp được tạo ra dưới dạng một biến, nhưng cũng có một phần của đường dẫn tĩnh. Chẳng hạn, tệp có thể được gọi là 'Dave' và sẽ luôn ở trong '/my/files/ở đây/'.
I'm trying to open a file using open[] but the name of the file is created
dynamically as a variable, but also has part of a static path. For instance,
the file may be called 'dave' and will always be in '/my/files/here/'.

Đó là một cách hoàn toàn bình thường để thực hiện, vì vậy nếu ví dụ đồ chơi của tôi bên dưới không rõ ràng, bạn nên đăng mã Fragmentand/hoặc một số Traceback.Import OS, Syspath = "C:/Temp" F = Open [OS .path.join [đường dẫn, tên tệp]] in filenamePrint f.Read [] printf.close [] TJG
things, so if my toy example below doesn't make
things clear, you'd better post a code fragment
and/or some traceback.

Nhập hệ điều hành, SYS
import os, sys

path = "c:/temp" cho tên tệp trong ["chas.txt", "Dave.txt"]: f = open [os.path.join [path, fileName]] in filenamePrint f.Read [] []
for filename in ["chas.txt", "dave.txt"]:
f = open [os.path.join [path, filename]]
print filename
print f.read []
print
f.close []

TJG

Đăng bởi Tim Golden

Đăng bởi Robert Rawlins - Hãy nghĩ rằng Bluei'm đang cố gắng mở một tệp bằng Open [] nhưng tên của tệp được tạo ra dưới dạng một biến, nhưng cũng có một phần của đường dẫn tĩnh. Chẳng hạn, tệp có thể được gọi là 'Dave' và sẽ luôn ở trong '/my/files/ở đây/'.
I'm trying to open a file using open[] but the name of the file is created
dynamically as a variable, but also has part of a static path. For instance,
the file may be called 'dave' and will always be in '/my/files/here/'.

Đó là một cách hoàn toàn bình thường để thực hiện, vì vậy nếu ví dụ đồ chơi của tôi bên dưới không rõ ràng, bạn nên đăng mã Fragmentand/hoặc một số Traceback.Import OS, Syspath = "C:/Temp" F = Open [OS .path.join [đường dẫn, tên tệp]] in filenamePrint f.Read [] printf.close [] TJG
things, so if my toy example below doesn't make
things clear, you'd better post a code fragment
and/or some traceback.

import os, sys
path = "c:/temp"
f = open [os.path.join [path, filename]]
print filename
print f.read []
print
f.close []

TJG

Bạn phải nhìn vào phương thức mở [đường dẫn chuỗi, chế độ chuỗi] propertiesso, bạn có thể thay đổi đối số, đường dẫn chuỗi, động
properties
so, you can change the argument, string path, dynamicly

Làm thế nào để bạn tạo một tệp động trong Python?

Nếu bạn cần tạo một tệp "động" bằng cách sử dụng Python, bạn có thể thực hiện nó với chế độ "X". Với chế độ này, bạn có thể tạo một tệp và sau đó ghi vào nó một cách linh hoạt bằng các phương thức mà bạn sẽ học chỉ trong một vài khoảnh khắc.with the "x" mode. With this mode, you can create a file and then write to it dynamically using methods that you will learn in just a few moments.

Làm thế nào để bạn tạo một tên tệp trong Python?

Mã bên dưới tạo một tệp mới [hoặc ghi đè] với dữ liệu ...
#!/usr/bin/env Python ..
# Tên tệp để viết ..
Tên tệp = "newfile.txt".
# Mở tệp với quyền viết ..
myfile = mở [tên tệp, 'w'].
# Viết một dòng vào tệp ..
myfile.write ['được viết bằng python \ n'].
# Đóng tệp ..

Tên tệp động là gì?

Tên tệp động sử dụng một biểu thức để tạo tên tệp.Bạn có thể sử dụng tên tệp động để tạo tệp đích mới mỗi khi.lập bản đồ.Nhiệm vụ chạy.Ví dụ: biểu thức sau tạo một tệp gọi là "orderout_.csv" mỗi lần.uses an expression to generate the file name. You can use a dynamic file name to create a new target file every time the. mapping. task runs. For example, the following expression creates a file called "OrdersOut_.csv" each time the.

Làm cách nào để thay đổi tên của một tệp trong một vòng lặp trong Python?

Sử dụng Phương thức đổi tên [] của mô -đun HĐH Sử dụng HĐH.Đổi tên phương thức [] để đổi tên một tệp trong một thư mục.Vượt qua cả tên cũ và một tên mới cho HĐH.Đổi tên chức năng [old_name, new_name] để đổi tên một tệp. Use the os. rename[] method to rename a file in a folder. Pass both the old name and a new name to the os. rename[old_name, new_name] function to rename a file.

Bài Viết Liên Quan

Chủ Đề