Nếu bạn đang đọc các đường dẫn ra khỏi một tệp và chuyển chúng cho các chức năng như
/Volumes/My Drive/My Scans/Batch 1/foo bar.tif
/Volumes/My Drive/My Scans/Batch 1/spam eggs.tif
/Volumes/My Drive/My Scans/Batch 2/another long name.tif
2, bạn không cần phải thoát khỏi chúng. Ví dụ:>>> with open['name with spaces', 'w'] as f:
... f.write['abc\n']
>>> os.path.getsize['name with spaces']
4
Trên thực tế, chỉ có một số ít các chức năng trong Python cần không gian thoát ra, vì chúng sẽ chuyển một chuỗi vào vỏ [như
/Volumes/My Drive/My Scans/Batch 1/foo bar.tif
/Volumes/My Drive/My Scans/Batch 1/spam eggs.tif
/Volumes/My Drive/My Scans/Batch 2/another long name.tif
3] hoặc vì họ đang cố gắng phân tích cú pháp giống như vỏ thay cho bạn [như /Volumes/My Drive/My Scans/Batch 1/foo bar.tif
/Volumes/My Drive/My Scans/Batch 1/spam eggs.tif
/Volumes/My Drive/My Scans/Batch 2/another long name.tif
4 với một chuỗi arg thay vì một danh sách arg].Vì vậy, hãy nói
/Volumes/My Drive/My Scans/Batch 1/foo bar.tif
/Volumes/My Drive/My Scans/Batch 1/spam eggs.tif
/Volumes/My Drive/My Scans/Batch 2/another long name.tif
5 trông như thế này:/Volumes/My Drive/My Scans/Batch 1/foo bar.tif
/Volumes/My Drive/My Scans/Batch 1/spam eggs.tif
/Volumes/My Drive/My Scans/Batch 2/another long name.tif
Sau đó, một cái gì đó như thế này sẽ hoạt động tốt:
with open['logfile.txt'] as logf:
for line in logf:
with open[line.rstrip[]] as f:
do_something_with_tiff_file[f]
Nhận thấy những ký tự
/Volumes/My Drive/My Scans/Batch 1/foo bar.tif
/Volumes/My Drive/My Scans/Batch 1/spam eggs.tif
/Volumes/My Drive/My Scans/Batch 2/another long name.tif
6 trong ví dụ của bạn, nếu đây là các mẫu GLOB, điều đó cũng tốt:with open['logfile.txt'] as logf:
for line in logf:
for path in glob.glob[line.rstrip[]]:
with open[path] as f:
do_something_with_tiff_file[f]
Nếu vấn đề của bạn hoàn toàn trái ngược với những gì bạn mô tả và tệp chứa đầy các chuỗi bị thoát ra và bạn muốn giải phóng chúng,
/Volumes/My Drive/My Scans/Batch 1/foo bar.tif
/Volumes/My Drive/My Scans/Batch 1/spam eggs.tif
/Volumes/My Drive/My Scans/Batch 2/another long name.tif
7 sẽ hoàn tác thoát khỏi phong cách Python và có các chức năng khác nhau để hoàn tác các loại thoát ra khác nhau, Nhưng mà không biết bạn muốn thoát khỏi loại nào bạn muốn hoàn tác, thật khó để nói bạn muốn chức năng nào Trong các chuỗi Python, dấu gạch chéo ngược "\" là một nhân vật đặc biệt, còn được gọi là nhân vật "Escape". Nó được sử dụng để thể hiện các ký tự khoảng trắng nhất định: "\ t" là một tab, "\ n" là một dòng mới và "\ r" là một sự trở lại vận chuyển.
import os file = "C:\\test file.txt" os.system["start '" +file +"'"]
Error:
The system cannot find the file 'C:\test.
Bạn có thể có không gian trong tên tệp Python không?
Bài viết: 6.3876,387
Chủ đề: 115115
Tham gia: Tháng 9 năm 2016Sep 2016
Danh tiếng: 481 481
Tháng 6-01-2018, 01:49 PM [Bài đăng này đã được sửa đổi lần cuối: Tháng 6-01-2018, 01:49 PM bởi Snippsat.] [This post was last modified: Jun-01-2018, 10:47 AM by snippsat.]
.
8 Chỉ cần trả lại tên tệp, vậy tại sao bạn nên thêm ____ 19 [chuỗi thô]? Nếu bạn tự xây dựng con đường thì có thể/Volumes/My Drive/My Scans/Batch 1/foo bar.tif /Volumes/My Drive/My Scans/Batch 1/spam eggs.tif /Volumes/My Drive/My Scans/Batch 2/another long name.tif
0 không phải là singelwith open['logfile.txt'] as logf: for line in logf: with open[line.rstrip[]] as f: do_something_with_tiff_file[f]
1 vì người thuê nhà thoát hiểm. Có lẽ tôi hiểu lầm bạn, vì vậy tốt hơn là bạn đăng mã và giải thích những gì không hoạt động.with open['logfile.txt'] as logf: for line in logf: with open[line.rstrip[]] as f: do_something_with_tiff_file[f]
Ở đây bằng cách sử dụng listdir và mở trong ứng dụng Windows mặc định của Notepad. Bây giờ tôi chỉ làm việc từ thư mục hiện tại để không cần đường dẫn.
So this
open in default applications and can handle space in file name.
import subprocess subprocess.run[['cmd', '/C', 'start', '', r'E:\env\test file.txt']]
Bài viết: 32
import webbrowser webbrowser.open[r'E:\env\test file.txt']
Chủ đề: 9
import webbrowser webbrowser.open[r'/home/mint/test file.txt']
Tham gia: Mar 2017
import os os.startfile[r'E:\env\test file.txt', 'open']
Bài viết: 3232
Chủ đề: 99
Tham gia: Mar 2017Mar 2017
Danh tiếng: 0 0
[Jun-01-2018, 01:49 PM] Snippsat đã viết:
The issue is the r"string space". I never actually define the string manually it's just pulled from os.listdir[] so I can't add the r to the start of the string
Webbroweser là mô -đun tốt nhất mà tôi đang tìm kiếm. Nó khắc phục sự cố tên tệp và cũng mở cửa sổ "Mở với" cho các tệp không liên kết
So-and-so of the Yard
Làm thế nào để bạn thoát khỏi không gian trong Python?2,908
Trong các chuỗi Python, dấu gạch chéo ngược "\" là một nhân vật đặc biệt, còn được gọi là nhân vật "Escape". Nó được sử dụng để thể hiện các ký tự khoảng trắng nhất định: "\ t" là một tab, "\ n" là một dòng mới và "\ r" là một sự trở lại vận chuyển.46
Tham gia: Tháng 9 năm 2016Sep 2016
Danh tiếng: 89 89
Tháng 6-01-2018, 01:06 PM [Bài đăng này đã được sửa đổi lần cuối: Tháng 6-01-2018, 01:49 PM bởi Wavic.] [This post was last modified: Jun-01-2018, 01:49 PM by wavic.]
Như tôi biết đường dẫn Windows là nhị phân. Vì vậy, thay vì r '' tiền tố, hãy thử B ''. Tôi không biết nếu điều đó được thay đổi. Tôi đã không sử dụng Windows trong nhiều năm.
Bài viết: 6.3876,387
Chủ đề: 115115
Tham gia: Tháng 9 năm 2016Sep 2016
Danh tiếng: 481 481
Tháng 6-01-2018, 01:49 PM [Bài đăng này đã được sửa đổi lần cuối: Tháng 6-01-2018, 01:49 PM bởi Snippsat.] [This post was last modified: Jun-01-2018, 01:49 PM by snippsat.]
.AceScottie Wrote: I never actually define the string manually it's just pulled from os.listdir[] so I can't add the r to the start of the string
/Volumes/My Drive/My Scans/Batch 1/foo bar.tif
/Volumes/My Drive/My Scans/Batch 1/spam eggs.tif
/Volumes/My Drive/My Scans/Batch 2/another long name.tif
8 Chỉ cần trả lại tên tệp, vậy tại sao bạn nên thêm ____ 19 [chuỗi thô]? Nếu bạn tự xây dựng con đường thì có thể with open['logfile.txt'] as logf:
for line in logf:
with open[line.rstrip[]] as f:
do_something_with_tiff_file[f]
0 không phải là singel with open['logfile.txt'] as logf:
for line in logf:
with open[line.rstrip[]] as f:
do_something_with_tiff_file[f]
1 vì người thuê nhà thoát hiểm. Có lẽ tôi hiểu lầm bạn, vì vậy tốt hơn là bạn đăng mã và giải thích những gì không hoạt động.If you build path yourself then can
with open['logfile.txt'] as logf:
for line in logf:
with open[line.rstrip[]] as f:
do_something_with_tiff_file[f]
0 just not singel with open['logfile.txt'] as logf:
for line in logf:
with open[line.rstrip[]] as f:
do_something_with_tiff_file[f]
1 because of escape charterer.Maybe i misunderstand you,so it's better that you post code and explain what's not working.
Ở đây bằng cách sử dụng listdir và mở trong ứng dụng Windows mặc định của Notepad. Bây giờ tôi chỉ làm việc từ thư mục hiện tại để không cần đường dẫn.
Now i just working from current folder so no path is needed.
/Volumes/My Drive/My Scans/Batch 1/foo bar.tif
/Volumes/My Drive/My Scans/Batch 1/spam eggs.tif
/Volumes/My Drive/My Scans/Batch 2/another long name.tif
0Bài viết: 3232
Chủ đề: 99
Tham gia: Mar 2017Mar 2017
Danh tiếng: 0 0
[Jun-01-2018, 01:49 PM] Snippsat đã viết:snippsat Wrote:.AceScottie Wrote: I never actually define the string manually it's just pulled from os.listdir[] so I can't add the r to the start of the string8 Chỉ cần trả lại tên tệp, vậy tại sao bạn nên thêm ____ 19 [chuỗi thô]? Nếu bạn tự xây dựng con đường thì có thể/Volumes/My Drive/My Scans/Batch 1/foo bar.tif /Volumes/My Drive/My Scans/Batch 1/spam eggs.tif /Volumes/My Drive/My Scans/Batch 2/another long name.tif
0 không phải là singelwith open['logfile.txt'] as logf: for line in logf: with open[line.rstrip[]] as f: do_something_with_tiff_file[f]
1 vì người thuê nhà thoát hiểm. Có lẽ tôi hiểu lầm bạn, vì vậy tốt hơn là bạn đăng mã và giải thích những gì không hoạt động.with open['logfile.txt'] as logf: for line in logf: with open[line.rstrip[]] as f: do_something_with_tiff_file[f]
If you build path yourself then can0 just not singelwith open['logfile.txt'] as logf: for line in logf: with open[line.rstrip[]] as f: do_something_with_tiff_file[f]
1 because of escape charterer.with open['logfile.txt'] as logf: for line in logf: with open[line.rstrip[]] as f: do_something_with_tiff_file[f]
Maybe i misunderstand you,so it's better that you post code and explain what's not working.Ở đây bằng cách sử dụng listdir và mở trong ứng dụng Windows mặc định của Notepad. Bây giờ tôi chỉ làm việc từ thư mục hiện tại để không cần đường dẫn.
Now i just working from current folder so no path is needed.0/Volumes/My Drive/My Scans/Batch 1/foo bar.tif /Volumes/My Drive/My Scans/Batch 1/spam eggs.tif /Volumes/My Drive/My Scans/Batch 2/another long name.tif
Webbroweser là mô -đun tốt nhất mà tôi đang tìm kiếm. Nó khắc phục sự cố tên tệp và cũng mở cửa sổ "Mở với" cho các tệp không liên kết
it fixes the file name issue and also opens the "open with" window for non associated files
Thansk